aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Author Topic: PendingBlocks list seems to get corrupted  (Read 5793 times)

phoenix

  • Evil respawning bird from aMule Dev Team
  • Developer
  • Hero Member
  • *****
  • Karma: 44
  • Offline Offline
  • Posts: 2503
  • The last shadow you'll ever see
PendingBlocks list seems to get corrupted
« on: October 31, 2010, 01:49:26 PM »

Code: [Select]
Core was generated by `amule'.
Program terminated with signal 6, Aborted.
#0  0x00007fce69b0b645 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007fce69b0b645 in raise () from /lib64/libc.so.6
#1  0x00007fce69b0cc33 in abort () from /lib64/libc.so.6
#2  0x00007fce6a93fc72 in wxFatalSignalHandler () at ./src/unix/utilsunx.cpp:1112
#3  <signal handler called>
#4  0x0000000000461fa7 in CUpDownClient::ClearDownloadBlockRequests (this=0x31f766c) at BaseClient.cpp:1220
#5  0x00000000004625b4 in CUpDownClient::Disconnected (this=0x31f766c, strReason=@0x7fffd546ca60, bFromSocket=true) at BaseClient.cpp:1270
#6  0x00000000004b4144 in CClientTCPSocket::Disconnect (this=0x58f50fc, strReason=@0x7fffd546ca60) at ClientTCPSocket.cpp:257
#7  0x00000000004b48cb in CClientTCPSocket::OnError (this=0x58f50fc, nErrorCode=65279) at ClientTCPSocket.cpp:2014
#8  0x00000000004c0112 in CClientTCPSocketHandler::ClientTCPSocketHandler (this=0x113dbc0, event=@0x5173b4c) at ClientTCPSocket.cpp:98
#9  0x00007fce6a875bd3 in wxAppConsole::HandleEvent (this=0x11ab54c, handler=0x113dbc0,
    func=0x4bff00 <CClientTCPSocketHandler::ClientTCPSocketHandler(wxSocketEvent&)>, event=@0x5173b4c) at ./src/common/appbase.cpp:322
#10 0x00007fce6a939cd0 in wxEvtHandler::ProcessEventIfMatches (entry=@0x113db60, handler=0x113dbc0, event=@0x5173b4c) at ./src/common/event.cpp:1239
#11 0x00007fce6a93bbc2 in wxEventHashTable::HandleEvent (this=0x113db20, event=@0x5173b4c, self=0x113dbc0) at ./src/common/event.cpp:906
#12 0x00007fce6a93bcfd in wxEvtHandler::ProcessEvent (this=0x113dbc0, event=@0x5173b4c) at ./src/common/event.cpp:1301
#13 0x00007fce6a93a5c8 in wxEvtHandler::ProcessPendingEvents (this=0x113dbc0) at ./src/common/event.cpp:1196
#14 0x00007fce6a876e99 in wxAppConsole::ProcessPendingEvents (this=0x11ab54c) at ./src/common/appbase.cpp:294
#15 0x00007fce6b110d46 in wxAppBase::ProcessIdle (this=0x11ab54c) at ./src/common/appcmn.cpp:435
#16 0x00007fce6b051a00 in wxapp_idle_callback () at ./src/gtk/app.cpp:213
#17 0x00007fce677930fb in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#18 0x00007fce677968cd in ?? () from /usr/lib64/libglib-2.0.so.0
#19 0x00007fce67796dfd in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#20 0x00007fce69622a17 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#21 0x00007fce6b070a49 in wxEventLoop::Run (this=0x7fce5c11803c) at ./src/gtk/evtloop.cpp:76
#22 0x00007fce6b1107ea in wxAppBase::MainLoop (this=0x11ab54c) at ./src/common/appcmn.cpp:312
#23 0x00007fce6b110555 in wxAppBase::OnRun (this=0x11ab54c) at ./src/common/appcmn.cpp:367
#24 0x00007fce6a8bf2f4 in wxEntry (argc=@0x7fce6abec6f0, argv=0x119a92c) at ./src/common/init.cpp:448
#25 0x00007fce6a8bf52a in wxEntry (argc=@0x7fffd546d34c, argv=0x7fffd546d428) at ./src/common/init.cpp:460
#26 0x0000000000673235 in main (argc=1, argv=0x7fffd546d428) at amule-gui.cpp:94
(gdb) f 4
#4  0x0000000000461fa7 in CUpDownClient::ClearDownloadBlockRequests (this=0x31f766c) at BaseClient.cpp:1220
1220                                    m_reqfile->RemoveBlockFromList(pending->block->StartOffset, pending->block->EndOffset);
(gdb) l
1215                    std::list<Pending_Block_Struct*>::iterator it = m_PendingBlocks_list.begin();
1216                    for (; it != m_PendingBlocks_list.end(); ++it) {
1217                            Pending_Block_Struct* pending = *it;
1218
1219                            if (m_reqfile) {
1220                                    m_reqfile->RemoveBlockFromList(pending->block->StartOffset, pending->block->EndOffset);
1221                            }
1222
1223                            delete pending->block;
1224                            // Not always allocated
(gdb) p pending
$1 = (Pending_Block_Struct *) 0xafafaf0200000000
(gdb) p pending->block
Cannot access memory at address 0xafafaf0200000000
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: PendingBlocks list seems to get corrupted
« Reply #1 on: October 31, 2010, 11:54:52 PM »

Current SVN ?  :o
I had believed this is fixed.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

GonoszTopi

  • The current man in charge of most things.
  • Administrator
  • Hero Member
  • *****
  • Karma: 169
  • Offline Offline
  • Posts: 2685
Re: PendingBlocks list seems to get corrupted
« Reply #2 on: November 01, 2010, 12:43:37 AM »

I had believed this is fixed.
s/fixed/worked around/
Logged
concordia cum veritate

phoenix

  • Evil respawning bird from aMule Dev Team
  • Developer
  • Hero Member
  • *****
  • Karma: 44
  • Offline Offline
  • Posts: 2503
  • The last shadow you'll ever see
Re: PendingBlocks list seems to get corrupted
« Reply #3 on: November 01, 2010, 04:20:36 AM »

Current SVN ?  :o
I am affraid yes.

ls -l amule
-rwxr-xr-x 1 asdf users 69639282 2010-10-30 16:40 amule*
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: PendingBlocks list seems to get corrupted
« Reply #4 on: November 01, 2010, 05:41:20 PM »

I had believed this is fixed.
s/fixed/worked around/
I still believe it was a fix, but maybe not for all possible reasons for the crash.
At least there were no more error reports until now, so it was not so bad.

Since we don't have a fix, 10352 should work around this class of crash bugs.
I'm pretty sure it's not the PendingBlocks getting corrupted, but rather the whole client got deleted.
But since you got as far as you did the deleted object's memory is still there and the workaround should work.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

phoenix

  • Evil respawning bird from aMule Dev Team
  • Developer
  • Hero Member
  • *****
  • Karma: 44
  • Offline Offline
  • Posts: 2503
  • The last shadow you'll ever see
Re: PendingBlocks list seems to get corrupted
« Reply #5 on: November 02, 2010, 08:25:13 PM »

Ok, I've just compiled the latest sources and I am testing. It is not a frequent crash, only got it once, so this will be hard to reproduce.

BTW, are we already linking against wx 2.9.1?

Cheers!
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: PendingBlocks list seems to get corrupted
« Reply #6 on: November 02, 2010, 08:58:23 PM »

wx 2.9 support is there, but experimental.
2.9.1 works only in Windows, Linux needs wx SVN.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

phoenix

  • Evil respawning bird from aMule Dev Team
  • Developer
  • Hero Member
  • *****
  • Karma: 44
  • Offline Offline
  • Posts: 2503
  • The last shadow you'll ever see
Re: PendingBlocks list seems to get corrupted
« Reply #7 on: November 04, 2010, 11:28:59 PM »

Ok, thanks!
Logged