aMule Forum

English => en_Bugs => Topic started by: stoatwblr on May 14, 2009, 01:44:46 PM

Title: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 14, 2009, 01:44:46 PM

Amuled is running now happily with more than 2000 files in "waiting" state.

It still gives Wx errors occaisonally.


Same in 9596, although it does seem a bit more stable - in general it's up about 6-8 hours between crashes.

Title: Assertion with amuled and > 600 downloads
Post by: Stu Redman on May 14, 2009, 09:18:21 PM
It still gives Wx errors occaisonally.
That's not a helpful problem report.
Title: Assertion with amuled and > 600 downloads
Post by: Kry on May 14, 2009, 10:11:56 PM
IT DOESN'T WORK!

That better?
Title: Assertion with amuled and > 600 downloads
Post by: Stu Redman on May 14, 2009, 11:21:21 PM
No.
Title: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 17, 2009, 03:34:42 AM
It still gives Wx errors occaisonally.
That's not a helpful problem report.

Well  I don't think the Wx error is related to the number of files being downloaded anymore.

Where do you want any crash reports pasted? Here or the crash/bt forums?

Title: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 17, 2009, 05:14:21 AM
Amuled: SVN 9605,  ~140 downloading, 1200 waiting, 800 paused.

It seems to fall over when a file is completing or just afterwards but it's hard to be sure because of the infrequency of crashes (about 3-5 hourly)

Things do seem to crash far more often if amulegui is running, or has been running.

[Debug] Generating a stack trace... please wait../../src/DownloadClient.cpp(689): assert "wxAssertFailure" failed in SendBlockRequests().

Call stack:
[00] 0xb78561ed
[01] CamuleApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/amule.cpp:1385
[02] wxOnAssert(wchar_t const*, int, char const*, wchar_t const*, wchar_t const*)
[03] CUpDownClient::SendBlockRequests()         /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/DownloadClient.cpp:689
[04] CUpDownClient::ProcessBlockPacket(unsigned char const*, unsigned int, bool, bool)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/DownloadClient.cpp:1041
[05] CClientTCPSocket::ProcessExtPacket(unsigned char const*, unsigned int, unsigned char)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/ClientTCPSocket.cpp:1417
[06] CClientTCPSocket::PacketReceived(CPacket*)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/ClientTCPSocket.cpp:2054
[07] CEMSocket::OnReceive(int)                  /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/EMSocket.cpp:328
[08] CClientTCPSocket::OnReceive(int)           /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/ClientTCPSocket.cpp:1958
[09] CEMSocket::SetDownloadLimit(unsigned int)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/EMSocket.cpp:359
[10] CUpDownClient::SetDownloadLimit(unsigned int)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/BaseClient.cpp:2344
[11] CPartFile::Process(unsigned int, unsigned char)   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/PartFile.cpp:1394
[12] CDownloadQueue::Process()                  /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/DownloadQueue.cpp:399
[13] CamuleApp::OnCoreTimer(CTimerEvent&)       /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/amule.cpp:1455
[14] wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[15] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[16] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[17] wxEvtHandler::ProcessEvent(wxEvent&)   
[18] wxEvtHandler::ProcessPendingEvents()   
[19] wxAppConsole::ProcessPendingEvents()   
[20] CamuleDaemonApp::OnRun()                   /build/buildd/amule-2.3.0~svnr9605/obj-i486-linux-gnu/src/../../src/amuled.cpp:646
Trace/breakpoint trap
Title: Assertion with amuled and > 600 downloads
Post by: Kry on May 17, 2009, 07:31:22 AM
Not a crash, actually. But interesting nevertheless.
Title: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 17, 2009, 01:01:06 PM
Not a crash, actually. But interesting nevertheless.

The program dies when this happens. What would you call it? :)

Title: Re: Assertion with amuled and > 600 downloads
Post by: Stu Redman on May 17, 2009, 02:29:03 PM
You are running amuled in debug mode. In debug mode it may crash controlled if it finds itself in a situation that looks like a bug. In this case it has just dropped a slower client but still finds nothing left for downloading.
Are all of your "crashes" like that? Then simply compiling amuled in Release mode should solve your problem.
Title: Re: Assertion with amuled and > 600 downloads
Post by: gtoso on May 17, 2009, 04:36:52 PM
So, if I understand correctly, for production use is always better to disable the debug?
I hate to tell users to download the debug version only for post a decent backtrace.

Title: Re: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 17, 2009, 04:38:11 PM
Yes they are all like that. Good to know this is just debugging in the SVN compilation.

Title: Re: Assertion with amuled and > 600 downloads
Post by: Festor on May 17, 2009, 04:57:04 PM
In debug mode it may crash controlled if it finds itself in a situation that looks like a bug.

Ehh? So we should not compile aMule in debug mode?  ???
Title: Re: Assertion with amuled and > 600 downloads
Post by: Stu Redman on May 17, 2009, 05:20:44 PM
We had such issues (http://www.amule.org/amule/index.php?topic=16294.msg86060#msg86060) before.
Debug mode means not only availability of debug symbols, but also lots of wxASSERT() checks. Many of these just cause a controlled abort before the program would crash anyway (like checking a pointer for zero that is dereferenced in the next line). Others are just mean to trigger a debug breakpoint so a developer can examine some unexpected behavior. These can of course turn into a nuisance for end users who just want to run the app.

On the other hand - if you run a SVN version you should be aware that you are beta testing, and feedbacks of such asserts are valuable assets to get the software stable. So SVN versions should be compiled in debug mode. stoatwblr, if this issue is biting you you can just remove that one wxFAIL. We may come back to you to request additional information (like patches with extra debug prints) if we want to get to the cause of the problem.
Title: Re: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 17, 2009, 05:54:51 PM
I've left debugging on but have disabled "DropSlowSources" for the moment.

Let's see if anythign else breaks... :)
Title: Re: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 18, 2009, 12:02:10 AM

So much for that idea...


[Debug] Generating a stack trace... please wait../../src/DownloadClient.cpp(689): assert "wxAssertFailure" failed in SendBlockRequests().

Call stack:
[00] 0xb78661ed
[01] CamuleApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/amule.cpp:1385
[02] wxOnAssert(wchar_t const*, int, char const*, wchar_t const*, wchar_t const*)
[03] CUpDownClient::SendBlockRequests()         /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/DownloadClient.cpp:689
[04] CUpDownClient::ProcessBlockPacket(unsigned char const*, unsigned int, bool, bool)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/DownloadClient.cpp:1041
[05] CClientTCPSocket::ProcessExtPacket(unsigned char const*, unsigned int, unsigned char)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/ClientTCPSocket.cpp:1417
[06] CClientTCPSocket::PacketReceived(CPacket*)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/ClientTCPSocket.cpp:2054
[07] CEMSocket::OnReceive(int)                  /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/EMSocket.cpp:328
[08] CClientTCPSocket::OnReceive(int)           /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/ClientTCPSocket.cpp:1958
[09] CEMSocket::SetDownloadLimit(unsigned int)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/EMSocket.cpp:359
[10] CUpDownClient::SetDownloadLimit(unsigned int)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/BaseClient.cpp:2344
[11] CPartFile::Process(unsigned int, unsigned char)   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/PartFile.cpp:1384
[12] CDownloadQueue::Process()                  /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/DownloadQueue.cpp:399
[13] CamuleApp::OnCoreTimer(CTimerEvent&)       /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/amule.cpp:1455
[14] wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[15] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[16] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[17] wxEvtHandler::ProcessEvent(wxEvent&)   
[18] wxEvtHandler::ProcessPendingEvents()   
[19] wxAppConsole::ProcessPendingEvents()   
[20] CamuleDaemonApp::OnRun()                   /build/buildd/amule-2.3.0~svnr9607/obj-i486-linux-gnu/src/../../src/amuled.cpp:646
Trace/breakpoint trap

Title: Re: Assertion with amuled and > 600 downloads
Post by: Stu Redman on May 18, 2009, 12:20:36 AM
Hmm. You shouldn't be able to reach that line of code when /eMule/DropSlowSources is false.
Did you set that and did you remember to stop amuled first ?
Please recheck the config.

If it's really off just remove the wxFAIL in DownloadClient.cpp:689.
Title: Re: Assertion with amuled and > 600 downloads
Post by: stoatwblr on May 19, 2009, 04:23:50 AM
I'd set it off before restarting amuled, looks like it got rewritten as amuled exited.

Things are _very_ stable now. Even the old uPNP crash and major memory grind with lots of categories I'd previously reported are gone.

Title: Re: Assertion with amuled and > 600 downloads
Post by: Stu Redman on May 19, 2009, 11:04:35 PM
Fine !
(crossing fingers  ;) )