Lately, I always run amule under gdb. I look at backtraces after every crash but I have stopped saving them because they all look the same. It is always a segv in _GSocket_GDK_Input. The backtrace of the offending thread is always the same. I included below one of the last that I saved.
I can post all backtraces for future crashes if it is worthwhile. I did not want to flood the thread with redundant information.
Program received signal SIGSEGV, Segmentation fault.
0x0000000002db1b80 in ?? ()
(gdb)
(gdb) bt
#0 0x0000000002db1b80 in ?? ()
#1 0x000000000096ca64 in _GSocket_GDK_Input (data=0x2db1b90, source=45,
condition=GDK_INPUT_WRITE) at ./src/gtk/gsockgtk.cpp:43
#2 0x00007ffff675499f in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#3 0x00007ffff4996342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#4 0x00007ffff499a2a8 in ?? () from /lib/libglib-2.0.so.0
#5 0x00007ffff499a7b5 in g_main_loop_run () from /lib/libglib-2.0.so.0
#6 0x00007ffff6b133e7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#7 0x000000000096c780 in wxEventLoop::Run (this=0x1a9a180)
at ./src/gtk/evtloop.cpp:76
#8 0x00000000008c81ea in wxAppBase::MainLoop (this=0x11eb310)
at ./src/common/appcmn.cpp:312
#9 0x00000000008c8364 in wxAppBase::OnRun (this=0x11eb310)
at ./src/common/appcmn.cpp:367
#10 0x00000000009f952f in wxEntry (argc=@0x11ae6d0, argv=0x11da790)
at ./src/common/init.cpp:448
#11 0x00000000009f9603 in wxEntry (argc=@0x7fffffffe2ac, argv=0x7fffffffe398)
at ./src/common/init.cpp:460
#12 0x0000000000638542 in main (argc=1, argv=0x7fffffffe398)
at amule-gui.cpp:93
(gdb)
(gdb) bt full
#0 0x0000000002db1b80 in ?? ()
No symbol table info available.
#1 0x000000000096ca64 in _GSocket_GDK_Input (data=0x2db1b90, source=45,
condition=GDK_INPUT_WRITE) at ./src/gtk/gsockgtk.cpp:43
socket = 0x2db1b90
#2 0x00007ffff675499f in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#3 0x00007ffff4996342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
No symbol table info available.
#4 0x00007ffff499a2a8 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#5 0x00007ffff499a7b5 in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#6 0x00007ffff6b133e7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#7 0x000000000096c780 in wxEventLoop::Run (this=0x1a9a180)
at ./src/gtk/evtloop.cpp:76
__FUNCTION__ = "Run"
activate = {m_evtLoopOld = 0x0}
exitcode = 0
#8 0x00000000008c81ea in wxAppBase::MainLoop (this=0x11eb310)
at ./src/common/appcmn.cpp:312
mainLoop = {<wxEventLoopPtr> = {m_ptr = 0x1a9a180}, m_pp = 0x11eb388,
---Type <return> to continue, or q <return> to quit---
m_pOld = 0x0}
#9 0x00000000008c8364 in wxAppBase::OnRun (this=0x11eb310)
at ./src/common/appcmn.cpp:367
No locals.
#10 0x00000000009f952f in wxEntry (argc=@0x11ae6d0, argv=0x11da790)
at ./src/common/init.cpp:448
callOnExit = {<No data fields>}
initializer = {m_ok = true}
#11 0x00000000009f9603 in wxEntry (argc=@0x7fffffffe2ac, argv=0x7fffffffe398)
at ./src/common/init.cpp:460
No locals.
#12 0x0000000000638542 in main (argc=1, argv=0x7fffffffe398)
at amule-gui.cpp:93
No locals.
(gdb)
(gdb) thread apply all bt
Thread 5 (Thread 0x7fffe75f8700 (LWP 14150)):
#0 0x00007ffff7bcae09 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x0000000000a5e1a7 in wxConditionInternal::WaitTimeout (this=0x1b647b0,
milliseconds=100) at ./src/unix/threadpsx.cpp:405
#2 0x0000000000a60f80 in wxCondition::WaitTimeout (this=0x1b67eb8,
milliseconds=100) at ./include/wx/thrimpl.cpp:258
#3 0x0000000000a5e6e7 in wxSemaphoreInternal::WaitTimeout (this=0x1b67eb0,
milliseconds=100) at ./src/unix/threadpsx.cpp:552
#4 0x0000000000a612e2 in wxSemaphore::WaitTimeout (this=0x2308388,
milliseconds=100) at ./include/wx/thrimpl.cpp:322
#5 0x000000000078090a in CTimerThread::Entry (this=0x2308350) at Timer.cpp:66
#6 0x0000000000a5e9ae in wxThreadInternal::PthreadStart (thread=0x2308350)
at ./src/unix/threadpsx.cpp:766
#7 0x0000000000a5e85e in wxPthreadStart (ptr=0x2308350)
at ./src/unix/threadpsx.cpp:718
#8 0x00007ffff7bc6971 in start_thread () from /lib/libpthread.so.0
#9 0x00007ffff390a92d in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x7fffed3e3700 (LWP 14147)):
#0 0x00000000005ceae8 in std::__norm::_Deque_iterator<ThrottledControlSocket*, ---Type <return> to continue, or q <return> to quit---
ThrottledControlSocket*&, ThrottledControlSocket**>::operator++ (
this=0x7fffed3e1410) at /usr/include/c++/4.4/bits/stl_deque.h:136
#1 0x00000000005d6a8c in std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**> > (__first=..., __last=..., __result=...)
at /usr/include/c++/4.4/bits/stl_algobase.h:345
#2 0x00000000005d6475 in std::__copy_move_a<false, __gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**> > (__first=...,
__last=..., __result=...) at /usr/include/c++/4.4/bits/stl_algobase.h:397
#3 0x00000000005d5b12 in std::__copy_move_a2<false, __gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**> > (
__first=..., __last=..., __result=...)
at /usr/include/c++/4.4/bits/stl_algobase.h:436
#4 0x00000000005d472f in std::copy<__gnu_debug::_Safe_iterator<std::__norm::_De---Type <return> to continue, or q <return> to quit---
que_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**> > (__first=..., __last=...,
__result=...) at /usr/include/c++/4.4/bits/stl_algobase.h:468
#5 0x00000000005d591b in std::__uninitialized_copy<true>::uninitialized_copy<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**> > (__first=..., __last=..., __result=...)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:93
#6 0x00000000005d43b9 in std::uninitialized_copy<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**> > (__first=...,
__last=..., __result=...)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:117
#7 0x00000000005d2664 in std::__uninitialized_copy_a<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > >, std::__norm::_Deque_iterator<ThrottledCon---Type <return> to continue, or q <return> to quit---
trolSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, ThrottledControlSocket*> (__first=..., __last=..., __result=...)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:257
#8 0x00000000005d0b49 in std::__norm::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> >::_M_range_insert_aux<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > > > (this=0x193a608, __pos=...,
__first=..., __last=...) at /usr/include/c++/4.4/bits/deque.tcc:473
#9 0x00000000005cee3c in std::__norm::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> >::_M_insert_dispatch<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > > > (this=0x193a608, __pos=..., __first=...,
__last=...) at /usr/include/c++/4.4/bits/stl_deque.h:1593
#10 0x00000000005cd0a0 in std::__norm::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> >::insert<__gnu_debug::_Safe_iterator<std::__norm::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > > > (this=0x193a608, __position=..., __first=...,
__last=...) at /usr/include/c++/4.4/bits/stl_deque.h:1350
#11 0x00000000005cb3e4 in std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> >::insert<__gnu_debug::_Safe_iterator<std::__norm---Type <return> to continue, or q <return> to quit---
::_Deque_iterator<ThrottledControlSocket*, ThrottledControlSocket*&, ThrottledControlSocket**>, std::__debug::deque<ThrottledControlSocket*, std::allocator<ThrottledControlSocket*> > > > (this=0x193a608, __position=..., __first=...,
__last=...) at /usr/include/c++/4.4/debug/deque:360
#12 0x00000000005c9b5c in UploadBandwidthThrottler::Entry (this=0x193a570)
at UploadBandwidthThrottler.cpp:358
#13 0x0000000000a5e9ae in wxThreadInternal::PthreadStart (thread=0x193a570)
at ./src/unix/threadpsx.cpp:766
#14 0x0000000000a5e85e in wxPthreadStart (ptr=0x193a570)
at ./src/unix/threadpsx.cpp:718
#15 0x00007ffff7bc6971 in start_thread () from /lib/libpthread.so.0
#16 0x00007ffff390a92d in clone () from /lib/libc.so.6
#17 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7ffff7fca940 (LWP 14134)):
#0 0x0000000002db1b80 in ?? ()
#1 0x000000000096ca64 in _GSocket_GDK_Input (data=0x2db1b90, source=45,
condition=GDK_INPUT_WRITE) at ./src/gtk/gsockgtk.cpp:43
#2 0x00007ffff675499f in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#3 0x00007ffff4996342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#4 0x00007ffff499a2a8 in ?? () from /lib/libglib-2.0.so.0
#5 0x00007ffff499a7b5 in g_main_loop_run () from /lib/libglib-2.0.so.0
#6 0x00007ffff6b133e7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#7 0x000000000096c780 in wxEventLoop::Run (this=0x1a9a180)
at ./src/gtk/evtloop.cpp:76
#8 0x00000000008c81ea in wxAppBase::MainLoop (this=0x11eb310)
at ./src/common/appcmn.cpp:312
#9 0x00000000008c8364 in wxAppBase::OnRun (this=0x11eb310)
at ./src/common/appcmn.cpp:367
#10 0x00000000009f952f in wxEntry (argc=@0x11ae6d0, argv=0x11da790)
at ./src/common/init.cpp:448
#11 0x00000000009f9603 in wxEntry (argc=@0x7fffffffe2ac, argv=0x7fffffffe398)
at ./src/common/init.cpp:460
#12 0x0000000000638542 in main (argc=1, argv=0x7fffffffe398)
at amule-gui.cpp:93
(gdb)