aMule Bug Tracker - aMule
View Issue Details
0001726aMuleGUIpublic2014-09-07 16:222014-09-07 16:22
morph 
 
normalminoralways
newopen 
LinuxDebiansid
2.3.1 
 
Debian sid
0001726: Amuled and amulegui use 100% CPU when removing someone from the friends list
Hello,
I'm forwarding the debian bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693617: [^]

>>>
I am using amuled and amulegui, and whenever I remove someone from the friends
list (in the messages screen) amulegui and amuled start consuming lots of CPU.
I need to kill amulegui in order to restore normal CPU usage, and even after
that amuled takes some time to normalize.
<<<

>>>
I've run amulegui through gdb, and this is what I got:


Program received signal SIGINT, Interrupt.
CECSocket::WritePacket (this=this@entry=0x93c000,
packet=packet@entry=0x7fffffffca80)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:738
738 ../../../../../src/libs/ec/cpp/ECSocket.cpp: El fitxer o directori
no existeix.
(gdb) bt
#0 CECSocket::WritePacket (this=this@entry=0x93c000,
packet=packet@entry=0x7fffffffca80)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:738
0000001 0x000000000052e6d9 in CECSocket::SendPacket (this=0x93c000,
packet=0x7fffffffca80)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:294
0000002 0x000000000043bdfa in CFriendListRem::RemoveFriend (this=0xb0ac20,
toremove=0x134b810)
at ../../src/amule-remote-gui.cpp:1874
0000003 0x0000000000485f09 in CFriendListCtrl::OnRemoveFriend (this=0xd65ad0)
at ../../src/FriendListCtrl.cpp:179
0000004 0x00007ffff6e323f6 in
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000005 0x00007ffff6e32564 in wxEventHashTable::HandleEvent(wxEvent&,
wxEvtHandler*) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000006 0x00007ffff6e32887 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000007 0x00007ffff75b53d9 in wxWindowBase::TryParent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000008 0x00007ffff6e32810 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000009 0x00007ffff75ddb35 in wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000010 0x00007ffff75981e0 in wxMenuBase::SendEvent(int, int) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
#11 0x00007ffff753744e in ?? () from
/usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000012 0x00007ffff3ac26e0 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000013 0x00007ffff3ad3750 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000014 0x00007ffff3adb6bc in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000015 0x00007ffff3adb852 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000016 0x00007ffff52eeb6c in gtk_widget_activate () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
0000017 0x00007ffff51eadbd in gtk_menu_shell_activate_item ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000018 0x00007ffff51eb15c in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000019 0x00007ffff51d8099 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000020 0x00007ffff3ac26e0 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000021 0x00007ffff3ad34d0 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000022 0x00007ffff3adb2db in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000023 0x00007ffff3adb852 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000024 0x00007ffff52ef93e in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000025 0x00007ffff51d6434 in gtk_propagate_event () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000026 0x00007ffff51d678b in gtk_main_do_event () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000027 0x00007ffff4e437ac in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
0000028 0x00007ffff33f9355 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
0000029 0x00007ffff33f9688 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000030 0x00007ffff33f9744 in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
0000031 0x00007ffff51d59a1 in gtk_main_iteration () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000032 0x00007ffff7538a2d in wxWindow::DoPopupMenu(wxMenu*, int, int) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000033 0x00000000004867b1 in PopupMenu (pos=..., menu=0x13fe460, this=0xd65ad0)
at /usr/include/wx-2.8/wx/window.h:924
0000034 CFriendListCtrl::OnRightClick (this=0xd65ad0, event=...) at
../../src/FriendListCtrl.cpp:145
0000035 0x00007ffff6e323f6 in
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000036 0x00007ffff6e32564 in wxEventHashTable::HandleEvent(wxEvent&,
wxEvtHandler*) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000037 0x00007ffff6e32887 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000038 0x00000000004ca6c6 in MuleExtern::wxListMainWindow::OnMouse
(this=0xd68b50, event=...)
---Type <return> to continue, or q <return> to quit---
at ../../src/extern/wxWidgets/listctrl.cpp:3048
0000039 0x00007ffff6e323f6 in
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000040 0x00007ffff6e32564 in wxEventHashTable::HandleEvent(wxEvent&,
wxEvtHandler*) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000041 0x00007ffff6e32887 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000042 0x00007ffff6e32810 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000043 0x00007ffff75ddb35 in
wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000044 0x00007ffff74eccbb in ?? () from
/usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000045 0x00007ffff51d8099 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000046 0x00007ffff3ac26e0 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000047 0x00007ffff3ad3750 in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000048 0x00007ffff3adb2db in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000049 0x00007ffff3adb852 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
0000050 0x00007ffff52ef93e in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000051 0x00007ffff51d6434 in gtk_propagate_event () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000052 0x00007ffff51d678b in gtk_main_do_event () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000053 0x00007ffff4e437ac in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
0000054 0x00007ffff33f9355 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
0000055 0x00007ffff33f9688 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
0000056 0x00007ffff33f9a82 in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
0000057 0x00007ffff51d5797 in gtk_main () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
0000058 0x00007ffff74db268 in wxEventLoop::Run() ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000059 0x00007ffff754d33c in wxAppBase::MainLoop() ()
---Type <return> to continue, or q <return> to quit---
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-2.8.so.0
0000060 0x00007ffff6de44e5 in wxEntry(int&, wchar_t**) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000061 0x000000000042c342 in main (argc=1, argv=<optimized out>) at
../../src/amule-remote-gui.cpp:134
(gdb)


After that, I did the same with amuled, but there were many different
threads:


(gdb) info threads
Id Target Id Frame
14 Thread 0x7ffff4ac3700 (LWP 28068) "amuled" 0x00007ffff5c82203 in
select ()
from /lib/x86_64-linux-gnu/libc.so.6
13 Thread 0x7ffff32c0700 (LWP 28067) "amuled" 0x00007ffff7bcc64b in
pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/x86_64-linux-gnu/libpthread.so.0
10 Thread 0x7ffff12bc700 (LWP 28056) "amuled" 0x00007ffff7bcf8ad in
nanosleep ()
from /lib/x86_64-linux-gnu/libpthread.so.0
9 Thread 0x7ffff1abd700 (LWP 28052) "amuled" 0x00007ffff5c82203 in select ()
from /lib/x86_64-linux-gnu/libc.so.6
8 Thread 0x7ffff22be700 (LWP 28051) "amuled" 0x00007ffff7bcc64b in
pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/x86_64-linux-gnu/libpthread.so.0
7 Thread 0x7ffff2abf700 (LWP 28050) "amuled" 0x00007ffff7bcc64b in
pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/x86_64-linux-gnu/libpthread.so.0
5 Thread 0x7ffff3ac1700 (LWP 28048) "amuled" 0x00007ffff7bcc64b in
pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/x86_64-linux-gnu/libpthread.so.0
4 Thread 0x7ffff42c2700 (LWP 28047) "amuled" 0x00007ffff7bcc64b in
pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/x86_64-linux-gnu/libpthread.so.0
2 Thread 0x7ffff52c4700 (LWP 28045) "amuled" 0x00007ffff7bcc2d4 in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
* 1 Thread 0x7ffff7fdd720 (LWP 28040) "amuled" CECSocket::WritePacket (
this=this@entry=0x1a306e0, packet=packet@entry=0x1ffbef0)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:738
(gdb)


Thread number one was the more suspicious, as it was stuck in the same
function as amulegui, so I did the backtrace of this one:


(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fdd720 (LWP 28040))]
#0 CECSocket::WritePacket (this=this@entry=0x1a306e0,
packet=packet@entry=0x1ffbef0)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:738
738 ../../../../../src/libs/ec/cpp/ECSocket.cpp: S’ha denegat el permís.
(gdb) bt
#0 CECSocket::WritePacket (this=this@entry=0x1a306e0,
packet=packet@entry=0x1ffbef0)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:738
0000001 0x000000000054bd19 in CECSocket::SendPacket (this=0x1a306e0,
packet=0x1ffbef0)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:294
0000002 0x000000000054c3ed in CECSocket::OnInput (this=0x1a306e0)
at ../../../../../src/libs/ec/cpp/ECSocket.cpp:406
0000003 0x00007ffff67c13f6 in
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&) () from
/usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000004 0x00007ffff67c1564 in wxEventHashTable::HandleEvent(wxEvent&,
wxEvtHandler*) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000005 0x00007ffff67c1887 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000006 0x00007ffff67c1360 in wxEvtHandler::ProcessPendingEvents() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000007 0x00007ffff6744899 in wxAppConsole::ProcessPendingEvents() ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000008 0x0000000000431ef8 in CamuleDaemonApp::OnRun (this=0x820e50) at
../../src/amuled.cpp:590
0000009 0x00007ffff67734e5 in wxEntry(int&, wchar_t**) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-2.8.so.0
0000010 0x000000000042d8d2 in main (argc=1, argv=<optimized out>) at
../../src/amuled.cpp:118
(gdb)
<<<
No tags attached.
Issue History
2014-09-07 16:22morphNew Issue

There are no notes attached to this issue.