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