Basic facts:
* platform (always): 64-bit
* RAM (always): no less than 4GB
* system (always): openSUSE
1. OS 11.1, traffic ~200KB/s, aMule 2.2.5 -- it works for days, no crash
2. OS 11.4 firewalled (!), traffic ~40KB/s, aMule 2.2.6 -- it works for days, no crash
3. OS 11.4, traffic ~200KB/s, aMule 2.2.6 -- crashes after ~0.5 hour
Previously I compiled aMule by myself, the newer version was downloaded from Packman repo.
Crash log follows:
*** glibc detected *** /usr/bin/amule: double free or corruption (out): 0x00007fff793639f0 ***
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe608c700 (LWP 7341)]
0x00007ffff530beee in _int_malloc () from /lib64/libc.so.6
(gdb) #0 0x00007ffff530beee in _int_malloc () from /lib64/libc.so.6
#1 0x00007ffff530ed99 in malloc () from /lib64/libc.so.6
#2 0x00007ffff5304d74 in __libc_message () from /lib64/libc.so.6
#3 0x00007ffff530a3b6 in malloc_printerr () from /lib64/libc.so.6
#4 0x00007ffff530f2dc in free () from /lib64/libc.so.6
#5 0x00007ffff407ce08 in ?? () from /lib64/libglib-2.0.so.0
#6 0x00007ffff40725b0 in g_io_add_watch_full () from /lib64/libglib-2.0.so.0
#7 0x00007ffff47c4706 in gdk_input_add_full () from /usr/lib64/libgdk-x11-2.0.so.0
#8 0x00007ffff695d006 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib64/wx-2.8-wxcontainer/libwx_gtk2u_core-2.8.so.0
#9 0x00007ffff655091e in GSocket::Write(char const*, int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
#10 0x00007ffff654c038 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
#11 0x00007ffff654c06c in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
#12 0x0000000000594d15 in CSocketClientProxy::Write (this=0x6425d00, buffer=0x68f23a0, nbytes=46) at Proxy.cpp:1292
#13 0x000000000049c589 in CEncryptedStreamSocket::Write (this=0x6425d00, lpBuf=0x68f23a0, nBufLen=46) at EncryptedStreamSocket.cpp:210
#14 0x000000000049aeac in CEMSocket::Send (this=0x6425d00, maxNumberOfBytesToSend=<value optimized out>, minFragSize=1300, onlyAllowedToSendControlPacket=true) at EMSocket.cpp:629
#15 0x0000000000473614 in SendControlData (this=<value optimized out>, maxNumberOfBytesToSend=<value optimized out>, overchargeMaxBytesToSend=<value optimized out>) at EMSocket.h:70
#16 CClientTCPSocket::SendControlData (this=<value optimized out>, maxNumberOfBytesToSend=<value optimized out>, overchargeMaxBytesToSend=<value optimized out>) at ClientTCPSocket.cpp:2105
#17 0x00000000004d9d08 in UploadBandwidthThrottler::Entry (this=0x42a5170) at UploadBandwidthThrottler.cpp:395
#18 0x00007ffff62b80c1 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
#19 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#20 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#21 0x0000000000000000 in ?? ()
(gdb) #0 0x00007ffff530beee in _int_malloc () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff530ed99 in malloc () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007ffff5304d74 in __libc_message () from /lib64/libc.so.6
No symbol table info available.
#3 0x00007ffff530a3b6 in malloc_printerr () from /lib64/libc.so.6
No symbol table info available.
#4 0x00007ffff530f2dc in free () from /lib64/libc.so.6
No symbol table info available.
#5 0x00007ffff407ce08 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#6 0x00007ffff40725b0 in g_io_add_watch_full () from /lib64/libglib-2.0.so.0
No symbol table info available.
#7 0x00007ffff47c4706 in gdk_input_add_full () from /usr/lib64/libgdk-x11-2.0.so.0
No symbol table info available.
#8 0x00007ffff695d006 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib64/wx-2.8-wxcontainer/libwx_gtk2u_core-2.8.so.0
No symbol table info available.
#9 0x00007ffff655091e in GSocket::Write(char const*, int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
No symbol table info available.
#10 0x00007ffff654c038 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
No symbol table info available.
#11 0x00007ffff654c06c in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
No symbol table info available.
#12 0x0000000000594d15 in CSocketClientProxy::Write (this=0x6425d00, buffer=0x68f23a0, nbytes=46) at Proxy.cpp:1292
lock = {m_isOk = true, m_mutex = @0x6425e48}
#13 0x000000000049c589 in CEncryptedStreamSocket::Write (this=0x6425d00, lpBuf=0x68f23a0, nBufLen=46) at EncryptedStreamSocket.cpp:210
No locals.
#14 0x000000000049aeac in CEMSocket::Send (this=0x6425d00, maxNumberOfBytesToSend=<value optimized out>, minFragSize=1300, onlyAllowedToSendControlPacket=true) at EMSocket.cpp:629
tosend = 46
result = <value optimized out>
bWasLongTimeSinceSend = false
sentControlPacketBytesThisCall = 0
returnVal = {success = false, sentBytesStandardPackets = 0, sentBytesControlPackets = 0}
lock = {m_isOk = true, m_mutex = @0x6426188}
anErrorHasOccured = false
sentStandardPacketBytesThisCall = 0
#15 0x0000000000473614 in SendControlData (this=<value optimized out>, maxNumberOfBytesToSend=<value optimized out>, overchargeMaxBytesToSend=<value optimized out>) at EMSocket.h:70
No locals.
#16 CClientTCPSocket::SendControlData (this=<value optimized out>, maxNumberOfBytesToSend=<value optimized out>, overchargeMaxBytesToSend=<value optimized out>) at ClientTCPSocket.cpp:2105
returnStatus = {success = false, sentBytesStandardPackets = 0, sentBytesControlPackets = 0}
#17 0x00000000004d9d08 in UploadBandwidthThrottler::Entry (this=0x42a5170) at UploadBandwidthThrottler.cpp:395
socketSentBytes = {success = false, sentBytesStandardPackets = 0, sentBytesControlPackets = 0}
lastSpentBytes = <value optimized out>
socket = 0x6426120
spentBytes = 0
spentOverhead = 0
sendLock = {m_isOk = true, m_mutex = @0x42a5190}
maxSlot = <value optimized out>
timeSinceLastLoop = <value optimized out>
minFragSize = <value optimized out>
doubleSendSize = 2600
bytesToSpend = 22528
sleepTime = <value optimized out>
thisLoopTick = 123955314
realBytesToSpend = 22528999
extraSleepTime = 1000
lastLoopTick = 123955314
allowedDataRate = <value optimized out>
rememberedSlotCounter = 2
#18 0x00007ffff62b80c1 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
No symbol table info available.
#19 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#20 0x00007ffff536a67d in clone () from /lib64/libc.so.6
No symbol table info available.
#21 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb)
Thread 13 (Thread 0x7fffec6da700 (LWP 7343)):
#0 0x00007ffff560f6f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff62b6f56 in wxConditionInternal::WaitTimeout(unsigned long) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
#2 0x00007ffff62b7362 in wxSemaphoreInternal::WaitTimeout(unsigned long) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
#3 0x00000000005c3efe in CTimerThread::Entry (this=0xc7b490) at Timer.cpp:64
#4 0x00007ffff62b80c1 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
#5 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#6 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#7 0x0000000000000000 in ?? ()
Thread 11 (Thread 0x7fffe608c700 (LWP 7341)):
#0 0x00007ffff530beee in _int_malloc () from /lib64/libc.so.6
#1 0x00007ffff530ed99 in malloc () from /lib64/libc.so.6
#2 0x00007ffff5304d74 in __libc_message () from /lib64/libc.so.6
#3 0x00007ffff530a3b6 in malloc_printerr () from /lib64/libc.so.6
#4 0x00007ffff530f2dc in free () from /lib64/libc.so.6
#5 0x00007ffff407ce08 in ?? () from /lib64/libglib-2.0.so.0
#6 0x00007ffff40725b0 in g_io_add_watch_full () from /lib64/libglib-2.0.so.0
#7 0x00007ffff47c4706 in gdk_input_add_full () from /usr/lib64/libgdk-x11-2.0.so.0
#8 0x00007ffff695d006 in GSocketGUIFunctionsTableConcrete::Install_Callback(GSocket*, GSocketEvent) () from /usr/lib64/wx-2.8-wxcontainer/libwx_gtk2u_core-2.8.so.0
#9 0x00007ffff655091e in GSocket::Write(char const*, int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
#10 0x00007ffff654c038 in wxSocketBase::_Write(void const*, unsigned int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
#11 0x00007ffff654c06c in wxSocketBase::Write(void const*, unsigned int) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu_net-2.8.so.0
#12 0x0000000000594d15 in CSocketClientProxy::Write (this=0x6425d00, buffer=0x68f23a0, nbytes=46) at Proxy.cpp:1292
#13 0x000000000049c589 in CEncryptedStreamSocket::Write (this=0x6425d00, lpBuf=0x68f23a0, nBufLen=46) at EncryptedStreamSocket.cpp:210
#14 0x000000000049aeac in CEMSocket::Send (this=0x6425d00, maxNumberOfBytesToSend=<value optimized out>, minFragSize=1300, onlyAllowedToSendControlPacket=true) at EMSocket.cpp:629
#15 0x0000000000473614 in SendControlData (this=<value optimized out>, maxNumberOfBytesToSend=<value optimized out>, overchargeMaxBytesToSend=<value optimized out>) at EMSocket.h:70
#16 CClientTCPSocket::SendControlData (this=<value optimized out>, maxNumberOfBytesToSend=<value optimized out>, overchargeMaxBytesToSend=<value optimized out>) at ClientTCPSocket.cpp:2105
#17 0x00000000004d9d08 in UploadBandwidthThrottler::Entry (this=0x42a5170) at UploadBandwidthThrottler.cpp:395
#18 0x00007ffff62b80c1 in wxThreadInternal::PthreadStart(wxThread*) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
#19 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#20 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#21 0x0000000000000000 in ?? ()
Thread 9 (Thread 0x7fffe8ed3700 (LWP 7335)):
#0 0x00007ffff560f6f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff5092775 in ?? () from /usr/lib64/libthreadutil.so.3
#2 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#3 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#4 0x0000000000000000 in ?? ()
Thread 8 (Thread 0x7fffe96d4700 (LWP 7334)):
#0 0x00007ffff560f6f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff5092775 in ?? () from /usr/lib64/libthreadutil.so.3
#2 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#3 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#4 0x0000000000000000 in ?? ()
Thread 7 (Thread 0x7fffe9ed5700 (LWP 7333)):
#0 0x00007ffff5363c73 in select () from /lib64/libc.so.6
#1 0x00007ffff7280755 in ?? () from /usr/lib64/libupnp.so.5
#2 0x00007ffff5092929 in ?? () from /usr/lib64/libthreadutil.so.3
#3 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#4 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#5 0x0000000000000000 in ?? ()
Thread 5 (Thread 0x7fffeaed7700 (LWP 7331)):
#0 0x00007ffff560f6f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff5092775 in ?? () from /usr/lib64/libthreadutil.so.3
#2 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#3 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#4 0x0000000000000000 in ?? ()
Thread 4 (Thread 0x7fffeb6d8700 (LWP 7330)):
#0 0x00007ffff560f6f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff5092775 in ?? () from /usr/lib64/libthreadutil.so.3
#2 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#3 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#4 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7fffebed9700 (LWP 7329)):
#0 0x00007ffff560f38c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff5093e02 in ?? () from /usr/lib64/libthreadutil.so.3
#2 0x00007ffff5092929 in ?? () from /usr/lib64/libthreadutil.so.3
#3 0x00007ffff560aa3f in start_thread () from /lib64/libpthread.so.0
#4 0x00007ffff536a67d in clone () from /lib64/libc.so.6
#5 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7ffff7fba800 (LWP 7319)):
#0 0x00007ffff5611ea4 in __lll_lock_wait () from /lib64/libpthread.so.0
#1 0x00007ffff560d294 in _L_lock_999 () from /lib64/libpthread.so.0
#2 0x00007ffff560d0aa in pthread_mutex_lock () from /lib64/libpthread.so.0
#3 0x00007ffff4080d1e in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#4 0x00007ffff40813b0 in ?? () from /lib64/libglib-2.0.so.0
#5 0x00007ffff4081a35 in g_main_loop_run () from /lib64/libglib-2.0.so.0
#6 0x00007ffff4b8f7e7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#7 0x00007ffff695bdb8 in wxEventLoop::Run() () from /usr/lib64/wx-2.8-wxcontainer/libwx_gtk2u_core-2.8.so.0
#8 0x00007ffff69dbf98 in wxAppBase::MainLoop() () from /usr/lib64/wx-2.8-wxcontainer/libwx_gtk2u_core-2.8.so.0
#9 0x00007ffff626708a in wxEntry(int&, wchar_t**) () from /usr/lib64/wx-2.8-wxcontainer/libwx_baseu-2.8.so.0
#10 0x0000000000510c72 in main (argc=1, argv=<value optimized out>) at amule-gui.cpp:95
(gdb) A debugging session is active.
Inferior 1 [process 7319] will be killed.