aMule Forum
English => Backtraces => Topic started by: luquino on December 02, 2008, 05:14:07 PM
-
crash occurred 30 seconds after connecting to the server, I was doing nothing on the amule window.
amule 2.2.2 , wxGTK 2.8.9, ubuntu 8.10 amd64
actually is not the first time that amule crashes directly after starting
luca@luca-desktop:~$ gdb amule
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(gdb) run
Starting program: /usr/local/bin/amule
[Thread debugging using libthread_db enabled]
[New Thread 0x7f8384de6780 (LWP 7862)]
Initialising aMule
Checking if there is an instance already running...
No other instances are running.
[New Thread 0x426f6950 (LWP 7868)]
HTTP download thread started
ListenSocket: Ok.
[New Thread 0x42ef7950 (LWP 7886)]
Loading temp files from /media/seagate9_/musica/amule/temp.
Loading PartFile 49 of 49
All PartFiles Loaded.
[New Thread 0x41c4c950 (LWP 7934)]
[New Thread 0x436f8950 (LWP 7935)]
Host: amule.sourceforge.net:80
URL: http://amule.sourceforge.net/lastversion
Response: 200 (Error: 0)
Download size: 6
HTTP download thread ended
[Thread 0x426f6950 (LWP 7868) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f8384de6780 (LWP 7862)]
0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x1000de26f40, Icon=2, percent=8) at MuleTrayIcon.cpp:211
211 Bar_ySize = HighId_Icon_size;
(gdb) bt
#0 0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x1000de26f40, Icon=2, percent=8) at MuleTrayIcon.cpp:211
#1 0x0000000000657543 in CamuleDlg::UpdateTrayIcon (this=0xd98e120, percent=8) at amuleDlg.cpp:365
#2 0x0000000000657a36 in CamuleDlg::ShowTransferRate (this=0xd98e120) at amuleDlg.cpp:832
#3 0x0000000000657fed in CamuleDlg::OnGUITimer (this=0xd98e120) at amuleDlg.cpp:1069
#4 0x00007f838331c389 in wxEvtHandler::ProcessEventIfMatches () from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007f838331d564 in wxEventHashTable::HandleEvent () from /usr/local/lib/libwx_baseu-2.8.so.0
#6 0x00007f838331d657 in wxEvtHandler::ProcessEvent () from /usr/local/lib/libwx_baseu-2.8.so.0
#7 0x00007f8383a96f86 in wxTimerBase::Notify () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#8 0x00007f83839b375b in timeout_callback () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007f837ff8f4fb in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007f837ff8ed3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0x00007f837ff9250d in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007f837ff92a3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x00007f8381e1f7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007f83839ab118 in wxEventLoop::Run () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007f8383a252cb in wxAppBase::MainLoop () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007f83832c140d in wxEntry () from /usr/local/lib/libwx_baseu-2.8.so.0
#17 0x000000000064cf55 in main (argc=1, argv=0x7fff8ce152d8) at amule-gui.cpp:95
(gdb) bt full
#0 0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x1000de26f40, Icon=2, percent=8) at MuleTrayIcon.cpp:211
Bar_ySize = 0
NewSize = 4596327
#1 0x0000000000657543 in CamuleDlg::UpdateTrayIcon (this=0xd98e120, percent=8) at amuleDlg.cpp:365
No locals.
#2 0x0000000000657a36 in CamuleDlg::ShowTransferRate (this=0xd98e120) at amuleDlg.cpp:832
percentDown = 8
buffer2 = {<wxStringBase> = {static npos = 18446744073709551615, m_pchData = 0x0}, <No data fields>}
kBpsUp = 11.5566368
kBpsDown = 21.7108116
buffer = {<wxStringBase> = {static npos = 18446744073709551615, m_pchData = 0x7f8370019538}, <No data fields>}
label = (struct wxStaticText *) 0xa937fc0
bmp = (struct wxStaticBitmap *) 0x0
#3 0x0000000000657fed in CamuleDlg::OnGUITimer (this=0xd98e120) at amuleDlg.cpp:1069
msCur = 479654
msGraphUpdate = 3000
sStatsUpdate = 30
msPrev1 = 478796
msPrev5 = 479654
msPrevStats = 0
msPrevGraph = 477514
#4 0x00007f838331c389 in wxEvtHandler::ProcessEventIfMatches () from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#5 0x00007f838331d564 in wxEventHashTable::HandleEvent () from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#6 0x00007f838331d657 in wxEvtHandler::ProcessEvent () from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#7 0x00007f8383a96f86 in wxTimerBase::Notify () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#8 0x00007f83839b375b in timeout_callback () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#9 0x00007f837ff8f4fb in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#10 0x00007f837ff8ed3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#11 0x00007f837ff9250d in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#12 0x00007f837ff92a3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#13 0x00007f8381e1f7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x00007f83839ab118 in wxEventLoop::Run () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#15 0x00007f8383a252cb in wxAppBase::MainLoop () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#16 0x00007f83832c140d in wxEntry () from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#17 0x000000000064cf55 in main (argc=1, argv=0x7fff8ce152d8) at amule-gui.cpp:95
No locals.
(gdb) thread apply all bt
Thread 5 (Thread 0x436f8950 (LWP 7935)):
#0 0x00007f83849e755d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f8383319d79 in wxConditionInternal::WaitTimeout () from /usr/local/lib/libwx_baseu-2.8.so.0
#2 0x00007f838331b102 in wxSemaphoreInternal::WaitTimeout () from /usr/local/lib/libwx_baseu-2.8.so.0
#3 0x000000000078f03d in CTimerThread::Entry (this=0x2c0c0e0) at Timer.cpp:64
#4 0x00007f838331b2ea in wxThreadInternal::PthreadStart () from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007f83849e33ea in start_thread () from /lib/libpthread.so.0
#6 0x00007f83825c4c6d in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()
Thread 4 (Thread 0x41c4c950 (LWP 7934)):
#0 0x00007f83849e9f4b in read () from /lib/libpthread.so.0
#1 0x0000000000778532 in CFile::doRead (this=0x41c4bba0, buffer=0x7f83709a2bd0, count=9728000) at CFile.cpp:304
#2 0x0000000000788e08 in CFileDataIO::Read (this=0x41c4bba0, buffer=0x7f83709a2bd0, count=9728000) at SafeFile.cpp:72
#3 0x00000000006e6966 in CKnownFile::CreateHashFromFile (file=0x41c4bba0, Length=9728000, Output=0x41c4b850,
pShaHashOut=0x0) at KnownFile.cpp:776
#4 0x00000000005c0762 in CHashingTask::CreateNextPartHash (this=0xa440830, file=0x41c4bba0, owner=0x7f8368005fc0,
toHash=CHashingTask::EH_MD4) at ThreadTasks.cpp:220
#5 0x00000000005c1659 in CHashingTask::Entry (this=0xa440830) at ThreadTasks.cpp:148
#6 0x00000000007c7f6b in CThreadScheduler::Entry (this=0xa31fbb0) at ThreadScheduler.cpp:291
#7 0x00000000007d4c4d in CTaskThread::Entry (this=0xadceca0) at ThreadScheduler.cpp:61
#8 0x00007f838331b2ea in wxThreadInternal::PthreadStart () from /usr/local/lib/libwx_baseu-2.8.so.0
#9 0x00007f83849e33ea in start_thread () from /lib/libpthread.so.0
#10 0x00007f83825c4c6d in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x42ef7950 (LWP 7886)):
#0 0x00007f83849ea851 in nanosleep () from /lib/libpthread.so.0
#1 0x00007f8383320f9c in wxMicroSleep () from /usr/local/lib/libwx_baseu-2.8.so.0
#2 0x00000000005c5d9a in UploadBandwidthThrottler::Entry (this=0xa364230) at UploadBandwidthThrottler.cpp:324
#3 0x00007f838331b2ea in wxThreadInternal::PthreadStart () from /usr/local/lib/libwx_baseu-2.8.so.0
#4 0x00007f83849e33ea in start_thread () from /lib/libpthread.so.0
#5 0x00007f83825c4c6d in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7f8384de6780 (LWP 7862)):
#0 0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x1000de26f40, Icon=2, percent=8) at MuleTrayIcon.cpp:211
#1 0x0000000000657543 in CamuleDlg::UpdateTrayIcon (this=0xd98e120, percent=8) at amuleDlg.cpp:365
#2 0x0000000000657a36 in CamuleDlg::ShowTransferRate (this=0xd98e120) at amuleDlg.cpp:832
#3 0x0000000000657fed in CamuleDlg::OnGUITimer (this=0xd98e120) at amuleDlg.cpp:1069
#4 0x00007f838331c389 in wxEvtHandler::ProcessEventIfMatches () from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007f838331d564 in wxEventHashTable::HandleEvent () from /usr/local/lib/libwx_baseu-2.8.so.0
#6 0x00007f838331d657 in wxEvtHandler::ProcessEvent () from /usr/local/lib/libwx_baseu-2.8.so.0
#7 0x00007f8383a96f86 in wxTimerBase::Notify () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#8 0x00007f83839b375b in timeout_callback () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007f837ff8f4fb in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007f837ff8ed3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0x00007f837ff9250d in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007f837ff92a3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x00007f8381e1f7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007f83839ab118 in wxEventLoop::Run () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007f8383a252cb in wxAppBase::MainLoop () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007f83832c140d in wxEntry () from /usr/local/lib/libwx_baseu-2.8.so.0
#17 0x000000000064cf55 in main (argc=1, argv=0x7fff8ce152d8) at amule-gui.cpp:95
(gdb)
-
today it is impossible for me to use aMule, I tried 10 times but alway crashes shortly after connecting.
Even I tried to disable the Tray Icon in the the options window, but no results, still crashing... :(
Can you give me an idea to put aMule at work?
-
If the tray icon is disabled in prefs, and you the restart aMule, it shouldn't be possible to get this crash.
I don't have an idea how the this-pointer can get corrupted. ???
-
this is a BT with Tray Icon disabled
(gdb) run
Starting program: /usr/local/bin/amule
[Thread debugging using libthread_db enabled]
[New Thread 0x7f59de452780 (LWP 11063)]
Initialising aMule
Checking if there is an instance already running...
No other instances are running.
[New Thread 0x421bc950 (LWP 11071)]
HTTP download thread started
ListenSocket: Ok.
[New Thread 0x4109b950 (LWP 11228)]
Loading temp files from /media/seagate9_/musica/amule/temp.
Loading PartFile 49 of 49
All PartFiles Loaded.
Adding file /media/seagate9_/musica/amule/temp/026.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/027.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/033.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/035.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/037.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/039.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/044.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/001.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/002.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/003.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/004.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/005.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/006.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/007.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/008.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/010.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/011.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/012.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/013.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/015.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/016.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/017.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/018.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/019.part.met to shares
Adding file /media/seagate9_/musica/amule/temp/023.part.met to shares
[New Thread 0x429bd950 (LWP 11274)]
[New Thread 0x431be950 (LWP 11275)]
Host: amule.sourceforge.net:80
URL: http://amule.sourceforge.net/lastversion
Response: 200 (Error: 0)
Download size: 6
HTTP download thread ended
[Thread 0x421bc950 (LWP 11071) exited]
[Thread 0x429bd950 (LWP 11274) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f59de452780 (LWP 11063)]
0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000, Icon=2,
percent=11) at MuleTrayIcon.cpp:211
211 Bar_ySize = HighId_Icon_size;
(gdb) bt
#0 0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000,
Icon=2, percent=11) at MuleTrayIcon.cpp:211
#1 0x0000000000657543 in CamuleDlg::UpdateTrayIcon (this=0x6e95220,
percent=11) at amuleDlg.cpp:365
#2 0x0000000000657a36 in CamuleDlg::ShowTransferRate (this=0x6e95220)
at amuleDlg.cpp:832
#3 0x0000000000657fed in CamuleDlg::OnGUITimer (this=0x6e95220)
at amuleDlg.cpp:1069
#4 0x00007f59dc988389 in wxEvtHandler::ProcessEventIfMatches ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007f59dc989564 in wxEventHashTable::HandleEvent ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#6 0x00007f59dc989657 in wxEvtHandler::ProcessEvent ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#7 0x00007f59dd102f86 in wxTimerBase::Notify ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#8 0x00007f59dd01f75b in timeout_callback ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007f59d95fb4fb in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007f59d95fad3b in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
#11 0x00007f59d95fe50d in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007f59d95fea3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x00007f59db48b7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007f59dd017118 in wxEventLoop::Run ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007f59dd0912cb in wxAppBase::MainLoop ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007f59dc92d40d in wxEntry () from /usr/local/lib/libwx_baseu-2.8.so.0
#17 0x000000000064cf55 in main (argc=1, argv=0x7fffe6480948)
at amule-gui.cpp:95
(gdb) bt full
#0 0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000,
Icon=2, percent=11) at MuleTrayIcon.cpp:211
Bar_ySize = 0
NewSize = 4596327
#1 0x0000000000657543 in CamuleDlg::UpdateTrayIcon (this=0x6e95220,
percent=11) at amuleDlg.cpp:365
No locals.
#2 0x0000000000657a36 in CamuleDlg::ShowTransferRate (this=0x6e95220)
at amuleDlg.cpp:832
percentDown = 11
buffer2 = {<wxStringBase> = {static npos = 18446744073709551615,
m_pchData = 0x7fffe64803e0}, <No data fields>}
kBpsUp = 9.94675636
kBpsDown = 31.4370766
buffer = {<wxStringBase> = {static npos = 18446744073709551615,
m_pchData = 0xd1e08b8}, <No data fields>}
label = (struct wxStaticText *) 0x92e2820
bmp = (struct wxStaticBitmap *) 0x0
#3 0x0000000000657fed in CamuleDlg::OnGUITimer (this=0x6e95220)
at amuleDlg.cpp:1069
msCur = 684115
msGraphUpdate = 3000
sStatsUpdate = 30
msPrev1 = 683183
msPrev5 = 684115
msPrevStats = 0
msPrevGraph = 684019
#4 0x00007f59dc988389 in wxEvtHandler::ProcessEventIfMatches ()
from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#5 0x00007f59dc989564 in wxEventHashTable::HandleEvent ()
from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#6 0x00007f59dc989657 in wxEvtHandler::ProcessEvent ()
from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#7 0x00007f59dd102f86 in wxTimerBase::Notify ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#8 0x00007f59dd01f75b in timeout_callback ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#9 0x00007f59d95fb4fb in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#10 0x00007f59d95fad3b in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#11 0x00007f59d95fe50d in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#12 0x00007f59d95fea3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#13 0x00007f59db48b7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x00007f59dd017118 in wxEventLoop::Run ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#15 0x00007f59dd0912cb in wxAppBase::MainLoop ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#16 0x00007f59dc92d40d in wxEntry () from /usr/local/lib/libwx_baseu-2.8.so.0
No locals.
#17 0x000000000064cf55 in main (argc=1, argv=0x7fffe6480948)
at amule-gui.cpp:95
No locals.
(gdb) thread apply all bt
Thread 5 (Thread 0x431be950 (LWP 11275)):
#0 0x00007f59de05355d in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00007f59dc985d79 in wxConditionInternal::WaitTimeout ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#2 0x00007f59dc987102 in wxSemaphoreInternal::WaitTimeout ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#3 0x000000000078f03d in CTimerThread::Entry (this=0x15b1d60) at Timer.cpp:64
#4 0x00007f59dc9872ea in wxThreadInternal::PthreadStart ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007f59de04f3ea in start_thread () from /lib/libpthread.so.0
#6 0x00007f59dbc30c6d in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x4109b950 (LWP 11228)):
#0 0x00007f59de056851 in nanosleep () from /lib/libpthread.so.0
#1 0x00007f59dc98cf9c in wxMicroSleep ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#2 0x00000000005c5d9a in UploadBandwidthThrottler::Entry (this=0x97aa270)
at UploadBandwidthThrottler.cpp:324
#3 0x00007f59dc9872ea in wxThreadInternal::PthreadStart ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#4 0x00007f59de04f3ea in start_thread () from /lib/libpthread.so.0
#5 0x00007f59dbc30c6d in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7f59de452780 (LWP 11063)):
#0 0x00000000006cf738 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000,
Icon=2, percent=11) at MuleTrayIcon.cpp:211
#1 0x0000000000657543 in CamuleDlg::UpdateTrayIcon (this=0x6e95220,
percent=11) at amuleDlg.cpp:365
#2 0x0000000000657a36 in CamuleDlg::ShowTransferRate (this=0x6e95220)
at amuleDlg.cpp:832
#3 0x0000000000657fed in CamuleDlg::OnGUITimer (this=0x6e95220)
at amuleDlg.cpp:1069
#4 0x00007f59dc988389 in wxEvtHandler::ProcessEventIfMatches ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007f59dc989564 in wxEventHashTable::HandleEvent ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#6 0x00007f59dc989657 in wxEvtHandler::ProcessEvent ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#7 0x00007f59dd102f86 in wxTimerBase::Notify ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#8 0x00007f59dd01f75b in timeout_callback ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007f59d95fb4fb in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007f59d95fad3b in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
#11 0x00007f59d95fe50d in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007f59d95fea3d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x00007f59db48b7a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007f59dd017118 in wxEventLoop::Run ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007f59dd0912cb in wxAppBase::MainLoop ()
from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007f59dc92d40d in wxEntry () from /usr/local/lib/libwx_baseu-2.8.so.0
#17 0x000000000064cf55 in main (argc=1, argv=0x7fffe6480948)
at amule-gui.cpp:95
(gdb)
-
I'm sorry man, yesterday I was hard trying to reproduce the bug all day long, but I couldn't.
I obtained some interruptions but impossible to determine a repetition, just I can say to you that I think that is possibly guilty the function that reorder the lines, in the download window, by pressing the column header, especially when I reorder by download progress. But I repeat: I was unable to obtain a repetition.
Anyway, is there CVS or SVN version that I can download and try?
Now I can't download nothing with my aMule... :(
-
Well, for some reason bit 40 in the trayicon's this-pointer gets set corrupting the pointer. This also breaks the disabling of the tray icon, so that had no effect.
I could work around this specific problem, but it makes no real sense curing the symptoms, and I have no idea about what causes this effect.
Why can't you download anything if you can't reproduce the problem ?
-
because amule works for a while and then crashes, some times is a few minutes, sometimes is a couple of hours and I can't seat down watching amule 24/24 hours, I need to launch and forget it until it finish is job.
-
May be that wxASSERT is corrupting the pointer? I hope not but.. :o I've been running aMule for days on Fedora 9 x86_64 without debug, and I suffered this problem running it with debug enabled and UseTrayIcon deactivated (aMule release 2.2.2). If not, how can UpdateTrayIcon be invoked when we have UseTrayIcon preference deactivated and code is checking for NULL pointer? (By the way, it also happened to me with UseTrayIcon and MinimizeToTray activated and debug disabled) What about changing the assert for an `if' check and raising a fatal exception when it fails? Would it help? Failing this, when gets the pointer assigned a non-NULL value with UseTrayIcon deactivated? Corrupted stack? Ufff so hard to trace
I'm not an expert, so I'll stay quiet if I'm telling nonsenses. Feel free to tell me or even delete this post ok? ;D
-
May be that wxASSERT is corrupting the pointer?
Hardly.
#define wxASSERT_MSG(cond, msg) \
if ( cond ) \
; \
else \
wxOnAssert(__TFILE__, __LINE__, __WXFUNCTION__, _T(#cond), msg)
If not, how can UpdateTrayIcon be invoked when we have UseTrayIcon preference deactivated and code is checking for NULL pointer?
Exactly.
Failing this, when gets the pointer assigned a non-NULL value with UseTrayIcon deactivated? Corrupted stack? Ufff so hard to trace
Yeah, that's the question. No nonsense. I don't have any more clue than you. Something systematic (always the same bit) 64-bityish. Automatic setting of a page attribute or execution bit in a pointer ? ???
-
ok Stu, listen, On my pc the problem is occurring continuosly so I offer myself to try to trace the corrupting pointer if there is some tools I can use and you think it can be useful.
I was a programmer and system manager, but never used C language, so feel free to use technical language if needed.
This offer is valid until saturday, because starting from sunday my wife is on holiday so I couldn't stay a lot at the computer. ;)
-
Please try this patch. It tries to work around the problem by not using the trayicon pointer as status variable anymore.
At least with trayicon off it should run now. If it does, try reenabling the tray icon and see if it crashes then.
-
I move to /src in amule directory and then
patch -p1 < icontrash.patch
IS this the command to patch ?
It appears to do nothing, it says that probably the pn is not correct...
edit:
I've found the right way, move the patch in amulexxx/src and staying there the right command is
patch -p0 < icontrash.patch
-
Ok, don't mind about the patch, I applied the changes by hand.
Amule is working now, I' ĺl post news. ;)
-
MMhhhhh ... things are getting worst.
Yestrday I had 2 painful crashes, when amule crashed as well other programs crashed, i.e. XMMS once, GKRELLM another time, and the whole system freezed for a while. I can't tell you which was the error because the terminal window crashed as well, both times. I was trying without tray icon.
Today I compiled amule wih debug and again at a certain point the system started to freeze, all other programs running where freezed or sloved down, Firefox, Nautilus..., but I hadn't a real crash.
Finally I recompiled amule from yesterday svn and now is running, cross your finger...
I'm not very experienced in C language, but I suspect a RAM mess.
-
Well, I have a final resume of my tests.
today I tried svn version of friday 05/12/2008. The first time it worked about 15 minutes and then crashed, the second try I switched off every other program, just amule was working on my pc and the result was 3 and half hours of work (details in the screen capture attached, sorry for the spanish .... ;) ).
That was the situation when I went back home, so I opened some windows on my pc: firefox, gkrellm, nautilus. In less than ten minutes amule crashed. I have no BT becuase it was compiled without debug, but as well I have no error to show you because the terminal window where I launched amule just says
...(omitted)
Host: amule.sourceforge.net:80
URL: http://amule.sourceforge.net/lastversion
Response: 200 (Error: 0)
Download size: 6
HTTP download thread ended
Terminado (killed)
luca@luca-desktop:~$
Now I can say to you that the first time in absolute that I installed and runned amule on this pc, last week, it worked about 10 hours without problem, during the night, alone, without any other program running. In the morning I gave a look to the screen and I was very happy because it downloaded about 6 GB. But a short while after I opened my mail amule crashed.
The other trick that shoud be related is that today, the same as the first time, when I went back to the pc, I setted a DL speed limit to 50 KB, instead of zero (full speed), because here in Lima (Perú) the maximum speed for the home ADSL you can have is 1 Mb. But I don't think that is related with the crashes because all the other time it crashed, the speed was setted to 50 and I didn't change it.
I can't say any more and I hope that this can be useful to you (actually I think that is a tough headhache).
P.S.: Sorry for my poor english :)
P.P.S.: if I have time I will try to compile the svn version with debug, with and without patch, and I will post the results, but I can't promise to you that this will be in a short time.
-
Hmm - I don't think one crashing app could cause other apps to crash on Linux. Maybe it is a problem with your system.
Please try the SVN version with debug and patch, and send a backtrace if possible.
And your English is just fine. :)
-
Please try this patch. It tries to work around the problem by not using the trayicon pointer as status variable anymore.
At least with trayicon off it should run now. If it does, try reenabling the tray icon and see if it crashes then.
I've modified CamuleDlg::ShowTransferRate to check the preferences for the tray icon
if (m_wndTaskbarNotifier && thePrefs::UseTrayIcon()) {
// set trayicon-icon
···
This code should be valid when the tray icon is disabled but it should fail with an enabled tray icon.
I have checked the logfile after these crashes and it is always showing a last message about a new chat message. As something is invalidating the pointer, may be it is the new message handling? I've just received one message (spam of course ;)) from the very same client (AngelMule 1.0) as I have received many other times BUT THIS TIME (it is the first one) aMule is still alive and the chat window is showing the chat session.
Next step: debugging the invalid pointer. I am not an amule dev so... I'll need some help
P.S: aMule-SVN-r9248-RELEASE-2_2_X
-
Hey guys,
seems I can also repeat your problem. I did some programming in the past, but it was 8088 Assembler and TurboPascal 3.0. So it's quite a while since then. I've postet my backtrace in http://forum.amule.org/index.php?topic=16255.0
So what is the current summary, what patches do we need to apply? Is there already a final solution for the compile problem in Format.cpp, where I had to disable the 32Bit ..SetCurrentField(wxString::Format(wxT..
Thanks,
Martin
-
I have checked the logfile after these crashes and it is always showing a last message about a new chat message.
Did you also check the timestamp ? How long before the crash was it ?
The chat message entry may be the only log entry for a long time and thus look as if it has something to do with it (which I doubt).
-
Stu I put a debug line and this was the result:
2008-12-09 18:17:31: ClientTCPSocket.cpp(803): Nuevo mensaje de 'forget_the_nick «AngelMule 1.0»' (IP:XXX.XXX.XXX.XXX)
2008-12-09 18:17:32: 2008-12-09 18:17:32: Invalid Tray Window 0x0000000000000000
Sorry for the spanish.
It stands for: ClientTCPSocket.cpp(803): New message from... And the next line is my own debug, forget the shown address as I used de %p in CFormat (RTMF ;D I know).
The code is (amuleDlg.cpp CamuleDlg::ShowTransferRate):
if (m_wndTaskbarNotifier) {
if (thePrefs::UseTrayIcon()) {
// set trayicon-icon
···
} else {
//LOG invalid state
}
}
Does this help?
Just another one (I hope next one will show the 0x1xxxx..x address :)):
2008-12-11 00:48:20: ClientTCPSocket.cpp(803): Nuevo mensaje de 'forget_the_nick «AngelMule 1.0»' (IP:xxx.xxx.xxx.xxx)
2008-12-11 00:48:24: amuleDlg.cpp(846): Invalid Tray Window
2008-12-11 00:48:29: amuleDlg.cpp(846): Invalid Tray Window
2008-12-11 00:48:34: amuleDlg.cpp(846): Invalid Tray Window
-
That's interesting - but I'm afraid I can't see a connection between the message handling and the tray icon. ???
-
Hi There,
I have now done the following. Turn on full debugging messages, so I can see if a chat window opens here. Updated wxWidgets from 2.8.8 (shipped with Ubuntu) to 2.8.9. I run on a 64Bit (2.6.24-22-generic #1 SMP Mon Nov 24 19:35:06 UTC 2008 x86_64 GNU/Linux) AthlonXP, with two cores. So simultaniously thread handling is possible. In comparison: I was not able to reproduce this bug, when running on a single core machine. For me it looks like some thread sorting problem. I also did a tcpdump, so I have the whole IP traffic recorded. From my perspective, I never saw a chat window that caused a crashing. So, befor I post the back trace, I also needed to apply the Forma.cpp patch, as it would elsewise not compile on 64Bit machine. The tray icon is not enabled, as I run aMule in a Xvnc environment.
So, if there is anybody out there that can instruct me, I'm willing to do the debug process. I'm also reachable by Jabba, MSN, ICQ/AIM and Yahoo. So this could shorten the debug process.
--- aMule-SVN-r9246/src/libs/common/Format.cpp 2008-12-10 17:00:06.365202902 +0100
+++ aMule-SVN/src/libs/common/Format.cpp 2008-12-10 13:59:50.101202000 +0100
@@ -429,9 +429,11 @@
// - Linux: leading zeros missing
// -> format it as hex
if (sizeof (void *) == 8) { // 64 bit
- SetCurrentField(wxString::Format(wxT("0x%016x"), (uint64) value));
+ // SetCurrentField(wxString::Format(wxT("0x%016x"), (uint64) value));
+ SetCurrentField(wxString::Format(wxT("0x%016x"), (uintptr_t) value));
} else { // 32 bit
- SetCurrentField(wxString::Format(wxT("0x%08x"), (uint32) value));
+ // SetCurrentField(wxString::Format(wxT("0x%08x"), (uint32) value));
+ SetCurrentField(wxString::Format(wxT("0x%08x"), (uintptr_t) value));
}
}
So the logfile looks like this:
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10855 received from 202.95.87.226
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 202.95.87.226
2008-12-11 18:14:16: DownloadClient.cpp(809): Local Client Protocol: Local Client: OP_REQUESTPARTS to 202.95.87.226
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x00000000075f67c0 kbps 10,1 kbpsCur 11,7 dt 0,901 rcv 10793
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x000000001ab2ede0 kbps 5,3 kbpsCur 2,6 dt 4,102 rcv 10831
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x000000000bc602d0 kbps 4,1 kbpsCur 3,3 dt 3,203 rcv 10813
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x0000000015205d00 kbps 8,0 kbpsCur 8,2 dt 1,296 rcv 10837
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x00000000097c0530 kbps 19,6 kbpsCur 21,0 dt 0,502 rcv 10812
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10693 received from 123.108.221.67
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 123.108.221.67
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10832 received from 77.20.131.38
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 77.20.131.38
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol e3, opcode 46, size 10264 received from 123.111.41.149
2008-12-11 18:14:16: ClientTCPSocket.cpp(706): Remote Client Protocol: Remote Client: OP_SENDINGPART from 123.111.41.149
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x00000000090b6aa0 kbps 11,6 kbpsCur 25,9 dt 0,403 rcv 10669
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x0000000012930100 kbps 16,4 kbpsCur 16,6 dt 0,604 rcv 10240
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x0000000007c2c410 kbps 16,3 kbpsCur 17,5 dt 0,604 rcv 10808
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10819 received from 220.134.235.208
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 220.134.235.208
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10609 received from 202.132.169.199
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 202.132.169.199
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10862 received from 219.37.60.11
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 219.37.60.11
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x0000000007bcc5f0 kbps 8,4 kbpsCur 9,6 dt 1,100 rcv 10838
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x000000000792cbc0 kbps 4,6 kbpsCur 6,6 dt 1,595 rcv 10795
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x00000000081940e0 kbps 7,0 kbpsCur 6,9 dt 1,495 rcv 10585
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10838 received from 93.1.83.80
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 93.1.83.80
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol e3, opcode 46, size 10264 received from 88.254.49.172
2008-12-11 18:14:16: ClientTCPSocket.cpp(706): Remote Client Protocol: Remote Client: OP_SENDINGPART from 88.254.49.172
2008-12-11 18:14:16: ClientTCPSocket.cpp(179): ED2k Client: Accepted connection from 62.42.139.104
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x000000000cd06ce0 kbps 23,7 kbpsCur 20,1 dt 0,498 rcv 10240
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x000000001a1b92e0 kbps 6,3 kbpsCur 6,6 dt 1,593 rcv 10814
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10832 received from 77.20.131.38
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 77.20.131.38
2008-12-11 18:14:16: DownloadClient.cpp(1190): Local Client Protocol: CalculateKBpsDown 0x0000000007c2c410 kbps 16,9 kbpsCur 35,5 dt 0,297 rcv 10808
2008-12-11 18:14:16: BaseClient.cpp(1324): ED2k Client: --- Disconnected client "Client [CHN][VeryCD]喜欢就干他 auf IP:Port 123.7.6.38:7119 benutzt eMule v0.48a - VeryCD 080313 VeryCD 080313"; Reason was Timeout
2008-12-11 18:14:16: BaseClient.cpp(1324): ED2k Client: --- Disconnected client "Client http://emule-project.net auf IP:Port 91.132.253.204:36464 benutzt eMule v0.49b "; Reason was Timeout
2008-12-11 18:14:16: BaseClient.cpp(1324): ED2k Client: --- Disconnected client "Client http://emule-project.net auf IP:Port 200.203.26.245:52237 benutzt eMule v0.49b "; Reason was Timeout
2008-12-11 18:14:16: ClientTCPSocket.cpp(2001): Remote Client Protocol: Packet with protocol c5, opcode 40, size 10877 received from 84.180.207.231
2008-12-11 18:14:16: ClientTCPSocket.cpp(1399): Remote Client Protocol: Remote Client: OP_COMPRESSEDPART from 84.180.207.231
2008-12-11 18:14:16: DownloadClient.cpp(809): Local Client Protocol: Local Client: OP_REQUESTPARTS to 84.180.207.231
Backtrace looks like this:
[New Thread 0x41657950 (LWP 10552)]
[Thread 0x41657950 (LWP 10552) exited]
[New Thread 0x41657950 (LWP 23441)]
[Thread 0x41657950 (LWP 23441) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fb30652e6f0 (LWP 31335)]
0x0000000000692644 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000, Icon=2, percent=76)
at MuleTrayIcon.cpp:211
211 Bar_ySize = HighId_Icon_size;
(gdb) bt
#0 0x0000000000692644 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000, Icon=2, percent=76)
at MuleTrayIcon.cpp:211
#1 0x00000000006274f7 in CamuleDlg::UpdateTrayIcon (this=0x11ebf40, percent=76)
at amuleDlg.cpp:365
#2 0x0000000000627938 in CamuleDlg::ShowTransferRate (this=0x11ebf40) at amuleDlg.cpp:832
#3 0x0000000000627e0f in CamuleDlg::OnGUITimer (this=0x11ebf40) at amuleDlg.cpp:1069
#4 0x00007fb30478885d in wxEvtHandler::ProcessEventIfMatches ()
from /usr/lib/libwx_baseu-2.8.so.0
#5 0x00007fb304788a1c in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#6 0x00007fb304788b5d in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#7 0x00007fb304f11bc6 in wxTimerBase::Notify () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#8 0x00007fb304e1def4 in timeout_callback () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007fb301d98abb in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007fb301d98364 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0x00007fb301d9b675 in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007fb301d9b995 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x00007fb3032d3f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007fb304e151cd in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007fb304e989bb in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007fb3047253ec in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#17 0x000000000061e7ea in main (argc=1, argv=0x7fff0e55bb58) at amule-gui.cpp:95
(gdb) bt full
#0 0x0000000000692644 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000, Icon=2, percent=76)
at MuleTrayIcon.cpp:211
Bar_ySize = 0
NewSize = 4580189
#1 0x00000000006274f7 in CamuleDlg::UpdateTrayIcon (this=0x11ebf40, percent=76)
at amuleDlg.cpp:365
No locals.
#2 0x0000000000627938 in CamuleDlg::ShowTransferRate (this=0x11ebf40) at amuleDlg.cpp:832
percentDown = 76
buffer2 = {<wxStringBase> = {static npos = 18446744073709551615,
m_pchData = 0xf40000}, <No data fields>}
kBpsUp = 24.9819584
kBpsDown = 300.278931
buffer = {<wxStringBase> = {static npos = 18446744073709551615,
m_pchData = 0x7d91698}, <No data fields>}
label = (struct wxStaticText *) 0x402c240
bmp = (struct wxStaticBitmap *) 0x7fff0e55b590
#3 0x0000000000627e0f in CamuleDlg::OnGUITimer (this=0x11ebf40) at amuleDlg.cpp:1069
msCur = 14580548
msGraphUpdate = 3000
sStatsUpdate = 30
msPrev1 = 14579444
msPrev5 = 14580548
msPrevStats = 14579646
msPrevGraph = 14580043
#4 0x00007fb30478885d in wxEvtHandler::ProcessEventIfMatches ()
from /usr/lib/libwx_baseu-2.8.so.0
No locals.
#5 0x00007fb304788a1c in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
No locals.
#6 0x00007fb304788b5d in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
No locals.
#7 0x00007fb304f11bc6 in wxTimerBase::Notify () from /usr/lib/libwx_gtk2u_core-2.8.so.0
---Type <return> to continue, or q <return> to quit---
No locals.
#8 0x00007fb304e1def4 in timeout_callback () from /usr/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#9 0x00007fb301d98abb in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#10 0x00007fb301d98364 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#11 0x00007fb301d9b675 in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#12 0x00007fb301d9b995 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#13 0x00007fb3032d3f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x00007fb304e151cd in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#15 0x00007fb304e989bb in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.8.so.0
No locals.
#16 0x00007fb3047253ec in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
No locals.
#17 0x000000000061e7ea in main (argc=1, argv=0x7fff0e55bb58) at amule-gui.cpp:95
No locals.
(gdb) thread apply all bt
Thread 4 (Thread 0x41e58950 (LWP 31350)):
#0 0x00007fb30612ee1d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007fb304786279 in wxConditionInternal::WaitTimeout () from /usr/lib/libwx_baseu-2.8.so.0
#2 0x00007fb304786b4e in wxSemaphoreInternal::WaitTimeout () from /usr/lib/libwx_baseu-2.8.so.0
#3 0x000000000073e23e in CTimerThread::Entry (this=0xf5ac40) at Timer.cpp:64
#4 0x00007fb3047873da in wxThreadInternal::PthreadStart () from /usr/lib/libwx_baseu-2.8.so.0
#5 0x00007fb30612a3f7 in start_thread () from /lib/libpthread.so.0
#6 0x00007fb303a38b3d in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x40e56950 (LWP 31344)):
#0 0x00007fb306131e81 in nanosleep () from /lib/libpthread.so.0
#1 0x00007fb30478cafc in wxMicroSleep () from /usr/lib/libwx_baseu-2.8.so.0
#2 0x00000000005a38e8 in UploadBandwidthThrottler::Entry (this=0x2b43500)
at UploadBandwidthThrottler.cpp:324
#3 0x00007fb3047873da in wxThreadInternal::PthreadStart () from /usr/lib/libwx_baseu-2.8.so.0
#4 0x00007fb30612a3f7 in start_thread () from /lib/libpthread.so.0
#5 0x00007fb303a38b3d in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7fb30652e6f0 (LWP 31335)):
#0 0x0000000000692644 in CMuleTrayIcon::SetTrayIcon (this=0x10000000000, Icon=2, percent=76)
at MuleTrayIcon.cpp:211
#1 0x00000000006274f7 in CamuleDlg::UpdateTrayIcon (this=0x11ebf40, percent=76)
at amuleDlg.cpp:365
#2 0x0000000000627938 in CamuleDlg::ShowTransferRate (this=0x11ebf40) at amuleDlg.cpp:832
#3 0x0000000000627e0f in CamuleDlg::OnGUITimer (this=0x11ebf40) at amuleDlg.cpp:1069
#4 0x00007fb30478885d in wxEvtHandler::ProcessEventIfMatches ()
from /usr/lib/libwx_baseu-2.8.so.0
#5 0x00007fb304788a1c in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#6 0x00007fb304788b5d in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#7 0x00007fb304f11bc6 in wxTimerBase::Notify () from /usr/lib/libwx_gtk2u_core-2.8.so.0
---Type <return> to continue, or q <return> to quit---
#8 0x00007fb304e1def4 in timeout_callback () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007fb301d98abb in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007fb301d98364 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0x00007fb301d9b675 in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007fb301d9b995 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x00007fb3032d3f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007fb304e151cd in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007fb304e989bb in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007fb3047253ec in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#17 0x000000000061e7ea in main (argc=1, argv=0x7fff0e55bb58) at amule-gui.cpp:95
(gdb)
Thanks,
Martin
-
So we have a certain this-pointer getting corrupted in always the same way, with bit 40 being set (no matter if it's valid or zero before). And it happens only on 64 bit builds (obviously), and only on multi-core. Um - what machine was it you couldn't reproduce it on ? 32 or 64 bit ?
There is no threaded write access to the pointer, so I have no idea how threading could do it. What do you mean by "thread sorting problem" ?
-
Another crash. This time running aMule SVN using wxGTK2 v2.8.9 (Debugging) (Snapshot: rev. 9252). After 1d19h without problems I've got this assert. I compiled wxGTK with debug to get __WXDEBUG__ in use.
ASSERT INFO:
amuleDlg.cpp(828): assert "(m_wndTaskbarNotifier != __null) == thePrefs::UseTrayIcon()" failed in ShowTransferRate().
BACKTRACE:
[1] wxOnAssert(wchar_t const*, int, char const*, wchar_t const*, wchar_t const*)
[2] CamuleDlg::ShowTransferRate() /home/oscar/devel/aMule-SVN-r9252-RELEASE-2_2_X/src/amuleDlg.cpp:829
[3] CamuleDlg::OnGUITimer(wxTimerEvent&) /home/oscar/devel/aMule-SVN-r9252-RELEASE-2_2_X/src/amuleDlg.cpp:1070
[4] wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) cons)
[5] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[6] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[7] wxEvtHandler::ProcessEvent(wxEvent&)
[8] wxTimerBase::Notify()
[9] g_main_context_dispatch()
[10] g_main_loop_run()
[11] gtk_main()
[12] wxEventLoop::Run()
[13] wxAppBase::MainLoop()
And again the last log was about an incoming message:
2008-12-14 16:01:33: ClientTCPSocket.cpp(803): Nuevo mensaje de 'xxxxxx' (IP:xxx.xxx.xxx.xxx)
2008-12-14 16:01:38: Logger.cpp(275): Debug: amuleDlg.cpp(828): assert "(m_wndTaskbarNotifier != __null) == thePrefs::UseTrayIcon()" failed in ShowTransferRate().
Backtraces in attachments.
My system is single core AMD64.
Thanks!
-
Hi Stu!
Sorry for delay but I advised it... ok listen. Saturday I tested amule Svn revision 9237 that is the latest that I can compile on my system. The newest versions give me this error
if g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -D__DEBUG__ -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -DUSE_WX_EXTENSIONS -I/usr/local/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -g -W -Wall -Wshadow -Wundef -ggdb -fno-inline -fmessage-length=0 -pthread -MT Format.o -MD -MP -MF ".deps/Format.Tpo" -c -o Format.o Format.cpp; \
then mv -f ".deps/Format.Tpo" ".deps/Format.Po"; else rm -f ".deps/Format.Tpo"; exit 1; fi
Format.cpp: In member function ‘CFormat& CFormat::operator%(void*)’:
Format.cpp:434: error: converting from ‘void*’ to ‘uint32_t’ loose precision
anyway, I compiled the svn version using your patch, debug mode.
Amule has worked about all saturday without crashes, but in 3 occasions (when I was throttling the UL/DL speed) amule simply stopped and in gdb I found:
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
no stack at all, so no error to report.
The same I received when I recompiled without debug, obviously I was not in gdb in this case.
Amule was running without Tray Icon, as soon as possible I will try with the Tray Icon and will post the result.
I think that you got an efficient workaround.
Let me know if I can do something more.
-
ok, today I could test aMule with Tray Icon enabled.
Nothing to report apart from the usual SIGKILL setting the UL/DL speed. Amule has worked about all day long.
Probably you have found the right solution even if is not the better one.
Thanks a lot Stu and if you have some ideas about the SIGKILL problem I will appreciate a lot.
-
Svn revision 9237 that is the latest that I can compile on my system.
Fixed since 9254.
Nothing to report apart from the usual SIGKILL setting the UL/DL speed.
What exactly are you doing ? Does it terminate on any rate change, or only on specific ones ?
Probably you have found the right solution even if is not the better one.
It's just a workaround. The real problem remains in the dark. :(
Commited in 9268.
-
Nothing to report apart from the usual SIGKILL setting the UL/DL speed.
What exactly are you doing ? Does it terminate on any rate change, or only on specific ones ?
Yes, what happens is that every time I try to change the rate (UL or DL) amule looks like to accept the changes, but in a short while the cpu jump to 100 %, and the lan stucks, firefox can' t retrive any site and after a while amule stops with sigkill.
But, I forgot a detail, in these days my pc is working without swap because my HDD had a problem and the seller took 7 days to decide to give me a new one. Tomorrow I will install the new one. My system has 1 GB of ram amd when amule is running is used up to 85 %, maybe when I change the rate the system should need the swap ....
-
Hi, this may help you to detect the cause: I'm able to crash amule just starting a new client (running with another user), adding first amule as a friend and sending a message from the second one. Amule crashes inmediately (2_2_X rev 9262 no patch).
2008-12-18 08:59:33: New message from 'http://www.aMule.org' (IP:XXXXXXXXXXXX)
2008-12-18 08:59:35: Invalid tray pointer 10000000000
If it is not related to message handling should it be to GUI update?
Regards!
-
Ok Stu, about the SIGKILL I think that swap area was implicated for sure, because now I restore my swap and I'm able to change the UL/DL speed both from the option window and from the tray icon. But I receive a SIGKILL today after almost 20 hours of continuous work and many speed changhes, the SIGKILL arrived more or less 10 minutes after a speed change. :(
I will not speak any more about this problem in this thread because his object is different.
I will make some more tries and if I found something enough to open a thread I will do.
Just one more question:
Your workaround for the tray icon pointer will be inserted in SVN version? If yes, when?
Thank you so much for your help.
-
Hi, this may help you to detect the cause
Really interesting. Problem is, I have no 64bit Linux platform for testing at hand. And it's nothing that can be deduced from program flow and logic.
My workaround does nothing useful in theory, it just stops using the this-pointer as status variable. Now if the pointer keeps ketting corrupted, at least with tray icon off nothing bad happens. But - luquino has tested it with tray icon on and it still works. So the read access to the pointer appears to corrupt it ? Whenever a message comes in ? ???
Your workaround for the tray icon pointer will be inserted in SVN version? If yes, when?
It's in trunk since Thursday (8268).
Thank you so much for your help.
You're welcome! Thank you for helping to get to the root of the problem (even if I still haven't found it).
-
Probably you have found the right solution even if is not the better one.
It's just a workaround. The real problem remains in the dark. :(
Commited in 9268.
Ok Stu, amule r9278 (trunk) seems to be ok. I've tried to crash it but it didn't :D
Hi, this may help you to detect the cause: I'm able to crash amule just starting a new client (running with another user), adding first amule as a friend and sending a message from the second one. Amule crashes inmediately (2_2_X rev 9262 no patch).
No asserts and no log after adding some debug messages to check it (debug & non debug builds). I also expected it to crash on close since RemoveSystray is not protected but it didn't (It happened to me with my own patched version). So is this patch included in prerelease version? I'll run some more tests but I think it won't appear again :)
Thank you very much for your work! (and patience ;D)
-
Patch is now in 2.2.3 too (9285). Please test it if it holds.
-
Patch is now in 2.2.3 too (9285). Please test it if it holds.
no problem! I'll do it as soon as it gets published, at this moment last rev available is 9276 for release-2_2_X http://amule.uw.hu/ (http://amule.uw.hu/).
Thanks!
-
aMule RELEASE_2_2_X rev 9288 running fine for +20h. It successfully handles incoming chat messages so this problem has been fixed (may be something collateral) or at least the workaround works great.
Thanks!