aMule Bug Tracker - aMule
View Issue Details
0000594aMuleExternal Connpublic2005-10-05 21:382008-03-24 13:53
0000594: amulecmd locks on "servers" command
When connecting to a localhost amuled the "servers" command causes amulecmd to stop (apparently waiting for some response packet).

When connecting amulecmdDLG to the same localhost amuled, the "servers" command is ignored once. In the second time it triggers a wxGTK Debug Alert window.
The uploaded file contains the amulecmdDLG bt after the debug window has been triggered and an amulecmd bt after stoping it with ^C.
No tags attached.
log amulecmd.bts.log (31,612) 2005-10-05 21:38
Issue History
2005-10-05 21:38nichNew Issue
2005-10-05 21:38nichFile Added: amulecmd.bts.log
2005-10-15 00:21GonoszTopiNote Added: 0001316
2008-03-24 13:53XaignarStatusnew => resolved
2008-03-24 13:53XaignarResolutionopen => fixed
2008-03-24 13:53XaignarAssigned To => Xaignar

2005-10-15 00:21   
In both cases wx is waiting data from the socket. In the DLG version, the assert is caused by wxYield() called recursively/twice. In the command-line version, it is waiting for data that (I think) will never arrive. I guess the same happens with the gui version, but you don't see it waiting.

The interesting part of the backtrace:

0000014 0x0805fea2 in CECTag::ReadChildren (this=0x80fcab0, socket=@0x80ca688) at ECPacket.cpp:509
        i = 5247
        tmp_tagCount = 5558

Do you really have 5558 servers in your server list? I think that the packet got corrupted. Unfortunately we don't have anything to detect/recover corruption in the protocol data. At least I should build a tool to investigate/debug EC protocol.