aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Author Topic: In fact, 3.1 :)  (Read 2603 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
In fact, 3.1 :)
« on: May 18, 2004, 02:12:25 PM »

Hi guys!

I have changed most POSITION in this code to a void *. amule worked for about 10 minutes, not more than before these changes, but of course, i'm stressing it with a lot of downloads. It seems that there is a critical number, somewhere in the range 120-130, where it gets more unstable. Yesterday I ran it with 200 files for quite a long time, the whole afternoon, I think.

I was connected with high id in razorback2, uploading/downloading, well, it was working fine.

And of course, we have a backtrace... :( This one is in find, never had one here before. The guilty one is once again cur_src at PartFile.cpp:1721, an old friend... :) Oh, and don't worry, line nunbers haven't changed.

I think we should take a closer look at srclists[] array management, because the bad cur_src pointer came from here, PartFile.cpp:1715, sl = 90, pos2 = 0x9287FD8 looks like a good pointer. cur_src = 0x92daec0, looks like a good pointer, but is pointing at trash.

Unfortunately, I'll have to leave more experiments to later... See ya!

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1084796800 (LWP 29194)]
0x08173979 in CList::Find(CUpDownClient*, void*) const (this=0xed6, searchValue=0x92daec0, startAfter=0x0) at CTypedPtrList.h:416
416         MYNODE* n = head;
(gdb) bt
#0  0x08173979 in CList::Find(CUpDownClient*, void*) const (this=0xed6,
    searchValue=0x92daec0, startAfter=0x0) at CTypedPtrList.h:416
#1  0x082327ae in CPartFile::RemoveDownloadingSource(CUpDownClient*) (this=0x512, client=0x92daec0)
    at PartFile.cpp:4056
#2  0x0817b483 in CUpDownClient::SetDownloadState(unsigned char) (this=0x92daec0, byNewState=1 '\001')
    at DownloadClient.cpp:535
#3  0x0817ce61 in CUpDownClient::CalculateKBpsDown() (this=0x92daec0) at DownloadClient.cpp:1045
#4  0x08229b9d in CPartFile::Process(unsigned, unsigned char) (this=0x8b58c78, reducedownload=0,
    m_icounter=10 '\n') at PartFile.cpp:1721
#5  0x0818cd88 in CDownloadQueue::Process() (this=0x8a63370) at DownloadQueue.cpp:376
#6  0x0828c726 in TimerProc() () at UploadQueue.cpp:704
#7  0x08295365 in CamuleDlg::OnUQTimer(wxTimerEvent&) (this=0x8774480) at amuleDlg.cpp:344
#8  0x00480e62 in wxEvtHandler::SearchEventTable(wxEventTable&, wxEvent&) () from /usr/lib/libwx_gtk-2.4.so.0
#9  0x00480c8f in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_gtk-2.4.so.0
#10 0x0050c867 in wxTimerBase::Notify() () from /usr/lib/libwx_gtk-2.4.so.0
#11 0x0042996c in timeout_callback () from /usr/lib/libwx_gtk-2.4.so.0
#12 0x007d03a5 in g_main_set_poll_func () from /usr/lib/libglib-1.2.so.0
#13 0x007cf35b in g_get_current_time () from /usr/lib/libglib-1.2.so.0
#14 0x007cf846 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
#15 0x007cfaf4 in g_main_run () from /usr/lib/libglib-1.2.so.0
#16 0x007166af in gtk_main () from /usr/lib/libgtk-1.2.so.0
#17 0x003e59f2 in wxApp::MainLoop() () from /usr/lib/libwx_gtk-2.4.so.0
#18 0x00437610 in wxAppBase::OnRun() () from /usr/lib/libwx_gtk-2.4.so.0
#19 0x003e60cd in wxEntry(int, char**) () from /usr/lib/libwx_gtk-2.4.so.0
#20 0x0828df7a in main (argc=1, argv=0xbff00c24) at amule.cpp:114
(gdb) bt full
#0  0x08173979 in CList::Find(CUpDownClient*, void*) const (this=0xed6,
    searchValue=0x92daec0, startAfter=0x0) at CTypedPtrList.h:416
        n = (MyNode *) 0x87b4290
#1  0x082327ae in CPartFile::RemoveDownloadingSource(CUpDownClient*) (this=0x512, client=0x92daec0)
    at PartFile.cpp:4056
        position = 0xcc7
#2  0x0817b483 in CUpDownClient::SetDownloadState(unsigned char) (this=0x92daec0, byNewState=1 '\001')
    at DownloadClient.cpp:535
No locals.
#3  0x0817ce61 in CUpDownClient::CalculateKBpsDown() (this=0x92daec0) at DownloadClient.cpp:1045
        tcLoop = 0.100000001
        tcInit = 0.400000006
        tcFinal = 50
        tcReduce = 5
        fInit = 0.25
        fFinal = 0.00200000009
        fReduce = 0.907940686
        msCur = 2548092000
#4  0x08229b9d in CPartFile::Process(unsigned, unsigned char) (this=0x8b58c78, reducedownload=0,
    m_icounter=10 '\n') at PartFile.cpp:1721
        kBpsClient = 4.60699287e-34
        download_state = 0 '\0'
        sl = 90
        pos1 = 0x9182108
        pos2 = 0x9287fd8
        old_trans = 0
        cur_src = (CUpDownClient *) 0x92daec0
        dwCurTick = 2548092000
#5  0x0818cd88 in CDownloadQueue::Process() (this=0x8a63370) at DownloadQueue.cpp:376
        cur_file = (class CPartFile *) 0x8b58c78
        i = 131
        size = 145
        downspeed = 0
#6  0x0828c726 in TimerProc() () at UploadQueue.cpp:704
        msPrev1 = 503496
        msPrev5 = 503057
        msPrevGraph = 0
        msPrevStats = 0
        msPrevSave = 480637
        msPrevHist = 503000
        msCur = 503597
        bStatsVisible = 191
        msGraphUpdate = 142442688
        sStatsUpdate = 141901792
#7  0x08295365 in CamuleDlg::OnUQTimer(wxTimerEvent&) (this=0x8774480) at amuleDlg.cpp:344
No locals.
#8  0x00480e62 in wxEvtHandler::SearchEventTable(wxEventTable&, wxEvent&) () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#9  0x00480c8f in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#10 0x0050c867 in wxTimerBase::Notify() () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#11 0x0042996c in timeout_callback () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#12 0x007d03a5 in g_main_set_poll_func () from /usr/lib/libglib-1.2.so.0
No symbol table info available.
#13 0x007cf35b in g_get_current_time () from /usr/lib/libglib-1.2.so.0
No symbol table info available.
#14 0x007cf846 in g_get_current_time () from /usr/lib/libglib-1.2.so.0
No symbol table info available.
#15 0x007cfaf4 in g_main_run () from /usr/lib/libglib-1.2.so.0
No symbol table info available.
#16 0x007166af in gtk_main () from /usr/lib/libgtk-1.2.so.0
No symbol table info available.
#17 0x003e59f2 in wxApp::MainLoop() () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#18 0x00437610 in wxAppBase::OnRun() () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#19 0x003e60cd in wxEntry(int, char**) () from /usr/lib/libwx_gtk-2.4.so.0
No symbol table info available.
#20 0x0828df7a in main (argc=1, argv=0xbff00c24) at amule.cpp:114
No locals.
(gdb)
Logged

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: In fact, 3.1 :)
« Reply #1 on: May 18, 2004, 04:21:15 PM »

Just an update, it's been now running for two hours under valgrind, with no strange reports and no crashes.

Cheers!
« Last Edit: May 18, 2004, 04:21:49 PM by phoenix »
Logged

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: In fact, 3.1 :)
« Reply #2 on: May 19, 2004, 06:55:27 AM »

Ok, it ran for a few hours in valgrind, and finaly aborted with a backtrace. Here is the result. There seems to be the use of variables previously free'd. I think that this one can give a clue of what is happening.

Ignore the conditional jump warnings, they are related to something inside wxWindows. Start looking at the first invalid read of size 1. This is due to the read of one byte, the field m_nDownloadState. This byte is inside a block of memory previouly free'd.

I'll have to repeat the test with more traceback from valgrind, but I think that it's clear that we are using a previously free'd variable. Maybe it has been forgotten to remove a deleted variable from a list?

Cheers, and have fun!

1: 1074380896 8738820
2: 1074388519 8738820
==29292==
==29292== Conditional jump or move depends on uninitialised value(s)
==29292==    at 0x13EC5F: gtk_widget_event (in /usr/lib/libgtk-1.2.so.0.9.1)
==29292==    by 0xD3C76B: wxWindow::GtkSendPaintEvents() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0xD3C2A8: wxWindow::GtkUpdate() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0xD3AF31: wxWindow::OnInternalIdle() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
Hashing thread timed out with no aditions - removing thread
==29292== valgrind's libpthread.so: KLUDGED call to: pthread_cond_destroy
==29292== valgrind's libpthread.so: KLUDGED call to: pthread_cond_destroy
Hashing thread ended
==29292==
==29292== Conditional jump or move depends on uninitialised value(s)
==29292==    at 0x26DD6C: _tr_flush_block (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26C56C: (within /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26AFE7: deflate (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x2689D0: compress2 (in /usr/lib/libz.so.1.2.0.7)
==29292==
==29292== Conditional jump or move depends on uninitialised value(s)
==29292==    at 0x26DD6C: _tr_flush_block (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26C6D3: (within /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26AFE7: deflate (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x2689D0: compress2 (in /usr/lib/libz.so.1.2.0.7)
==29292==
==29292== Conditional jump or move depends on uninitialised value(s)
==29292==    at 0x26B8FF: (within /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26C600: (within /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26AFE7: deflate (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x2689D0: compress2 (in /usr/lib/libz.so.1.2.0.7)
==29292==
==29292== Conditional jump or move depends on uninitialised value(s)
==29292==    at 0x26DD6C: _tr_flush_block (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26C480: (within /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x26AFE7: deflate (in /usr/lib/libz.so.1.2.0.7)
==29292==    by 0x2689D0: compress2 (in /usr/lib/libz.so.1.2.0.7)
==29292==
==29292== Invalid read of size 1
==29292==    at 0x8148000: CUpDownClient::GetDownloadState() (updownclient.h:277)
==29292==    by 0x817A3EF: CUpDownClient::IsSourceRequestAllowed() (DownloadClient.cpp:165)
==29292==    by 0x817A56F: CUpDownClient::SendFileRequest() (DownloadClient.cpp:222)
==29292==    by 0x8155DEF: CUpDownClient::ConnectionEstablished() (BaseClient.cpp:1297)
==29292==    Address 0x4367FE46 is 382 bytes inside a block of size 572 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x813F6EF: CClientReqSocket::Disconnect(CString) (ListenSocket.cpp:145)
==29292==    by 0x81460C7: CClientReqSocket::OnError(int) (ListenSocket.cpp:1683)
==29292==    by 0x82956FE: CamuleDlg::socketHandler(wxSocketEvent&) (amuleDlg.cpp:441)
==29292==
==29292== Invalid read of size 2
==29292==    at 0x817E00D: CUpDownClient::IsPartAvailable(unsigned short) (updownclient.h:281)
==29292==    by 0x822A9C8: CPartFile::UpdatePartsInfo() (PartFile.cpp:2026)
==29292==    by 0x817B348: CUpDownClient::ProcessFileStatus(bool, CSafeMemFile*, CPartFile*) (DownloadClient.cpp:506)
==29292==    by 0x814087E: CClientReqSocket::ProcessPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:455)
==29292==    Address 0x4367FE48 is 384 bytes inside a block of size 572 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x813F6EF: CClientReqSocket::Disconnect(CString) (ListenSocket.cpp:145)
==29292==    by 0x81460C7: CClientReqSocket::OnError(int) (ListenSocket.cpp:1683)
==29292==    by 0x82956FE: CamuleDlg::socketHandler(wxSocketEvent&) (amuleDlg.cpp:441)
==29292==
==29292== Invalid read of size 4
==29292==    at 0x817DF17: CUpDownClient::HasValidHash() (updownclient.h:158)
==29292==    by 0x8179F01: CUpDownClient::Compare(CUpDownClient*, bool) (DownloadClient.cpp:108)
==29292==    by 0x818D2A1: CDownloadQueue::CheckAndAddSource(CPartFile*, CUpDownClient*) (DownloadQueue.cpp:476)
==29292==    by 0x822FAA6: CPartFile::AddClientSources(CMemFile*, unsigned char) (PartFile.cpp:3373)
==29292==    Address 0x4367FD21 is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8147DF5: md4cmp(void const*, void const*) (otherfunctions.h:218)
==29292==    by 0x8179F3D: CUpDownClient::Compare(CUpDownClient*, bool) (DownloadClient.cpp:109)
==29292==    by 0x818D2A1: CDownloadQueue::CheckAndAddSource(CPartFile*, CUpDownClient*) (DownloadQueue.cpp:476)
==29292==    by 0x822FAA6: CPartFile::AddClientSources(CMemFile*, unsigned char) (PartFile.cpp:3373)
==29292==    Address 0x4367FD21 is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 2
==29292==    at 0x817E00D: CUpDownClient::IsPartAvailable(unsigned short) (updownclient.h:281)
==29292==    by 0x822A9C8: CPartFile::UpdatePartsInfo() (PartFile.cpp:2026)
==29292==    by 0x817B348: CUpDownClient::ProcessFileStatus(bool, CSafeMemFile*, CPartFile*) (DownloadClient.cpp:506)
==29292==    by 0x8144C92: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1307)
==29292==    Address 0x4367FE48 is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8147E07: md4cmp(void const*, void const*) (otherfunctions.h:218)
==29292==    by 0x8179F3D: CUpDownClient::Compare(CUpDownClient*, bool) (DownloadClient.cpp:109)
==29292==    by 0x818D2A1: CDownloadQueue::CheckAndAddSource(CPartFile*, CUpDownClient*) (DownloadQueue.cpp:476)
==29292==    by 0x822FAA6: CPartFile::AddClientSources(CMemFile*, unsigned char) (PartFile.cpp:3373)
==29292==    Address 0x4367FD25 is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8147E19: md4cmp(void const*, void const*) (otherfunctions.h:218)
==29292==    by 0x8179F3D: CUpDownClient::Compare(CUpDownClient*, bool) (DownloadClient.cpp:109)
==29292==    by 0x818D2A1: CDownloadQueue::CheckAndAddSource(CPartFile*, CUpDownClient*) (DownloadQueue.cpp:476)
==29292==    by 0x822FAA6: CPartFile::AddClientSources(CMemFile*, unsigned char) (PartFile.cpp:3373)
==29292==    Address 0x4367FD29 is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8147E2B: md4cmp(void const*, void const*) (otherfunctions.h:218)
==29292==    by 0x8179F3D: CUpDownClient::Compare(CUpDownClient*, bool) (DownloadClient.cpp:109)
==29292==    by 0x818D2A1: CDownloadQueue::CheckAndAddSource(CPartFile*, CUpDownClient*) (DownloadQueue.cpp:476)
==29292==    by 0x822FAA6: CPartFile::AddClientSources(CMemFile*, unsigned char) (PartFile.cpp:3373)
==29292==    Address 0x4367FD2D is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8147EC4: CUpDownClient::GetIP() (updownclient.h:146)
==29292==    by 0x8174EFE: CClientUDPSocket::ProcessPacket(char*, unsigned short, unsigned char, char*, unsigned short) (ClientUDPSocket.cpp:180)
==29292==    by 0x817473D: CClientUDPSocket::OnReceive(int) (ClientUDPSocket.cpp:92)
==29292==    by 0x82958A0: CamuleDlg::socketHandler(wxSocketEvent&) (amuleDlg.cpp:493)
==29292==    Address 0x4367FCEC is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 1
==29292==    at 0x8148000: CUpDownClient::GetDownloadState() (updownclient.h:277)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    by 0x828C725: TimerProc() (UploadQueue.cpp:704)
==29292==    by 0x8295364: CamuleDlg::OnUQTimer(wxTimerEvent&) (amuleDlg.cpp:344)
==29292==    Address 0x4367FE46 is 2 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8233574: CUpDownClient::GetLastAskedTime() (updownclient.h:279)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    by 0x828C725: TimerProc() (UploadQueue.cpp:704)
==29292==    by 0x8295364: CamuleDlg::OnUQTimer(wxTimerEvent&) (amuleDlg.cpp:344)
==29292==    Address 0x4367FE50 is 12 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid write of size 1
==29292==    at 0x817A148: CUpDownClient::AskForDownload() (DownloadClient.cpp:133)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    by 0x828C725: TimerProc() (UploadQueue.cpp:704)
==29292==    Address 0x4367FE74 is 0 bytes inside a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid write of size 4
==29292==    at 0x817A163: CUpDownClient::AskForDownload() (DownloadClient.cpp:134)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    by 0x828C725: TimerProc() (UploadQueue.cpp:704)
==29292==    Address 0x4367FE50 is 12 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid read of size 1
==29292==    at 0x817B432: CUpDownClient::SetDownloadState(unsigned char) (DownloadClient.cpp:530)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FE46 is 2 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid read of size 4
==29292==    at 0x817B444: CUpDownClient::SetDownloadState(unsigned char) (DownloadClient.cpp:531)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FCE4 is 28 bytes inside a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== Invalid read of size 1
==29292==    at 0x817B469: CUpDownClient::SetDownloadState(unsigned char) (DownloadClient.cpp:534)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FE46 is 2 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid read of size 1
==29292==    at 0x817B4B5: CUpDownClient::SetDownloadState(unsigned char) (DownloadClient.cpp:541)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FE46 is 2 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid write of size 1
==29292==    at 0x817B6F0: CUpDownClient::SetDownloadState(unsigned char) (DownloadClient.cpp:595)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FE46 is 2 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid read of size 1
==29292==    at 0x8148000: CUpDownClient::GetDownloadState() (updownclient.h:277)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FE46 is 2 bytes after a block of size 36 free'd
==29292==    at 0x62364C: __builtin_delete (vg_replace_malloc.c:244)
==29292==    by 0x818961F: wxListItem::~wxListItem() (listbase.h:210)
==29292==    by 0x81CEEDA: wxODListMainWindow::FindItem(long, long) (listctrl.cpp:4569)
==29292==    by 0x81D0A34: wxODGenericListCtrl::FindItem(long, long) (listctrl.cpp:5278)
==29292==
==29292== Invalid write of size 4
==29292==    at 0x817D3B6: CUpDownClient::UpdateDisplayedInfo(bool) (DownloadClient.cpp:1198)
==29292==    by 0x817B756: CUpDownClient::SetDownloadState(unsigned char) (DownloadClient.cpp:603)
==29292==    by 0x817A175: CUpDownClient::AskForDownload() (DownloadClient.cpp:135)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    Address 0x4367FD98 is 36 bytes inside a block of size 37 alloc'd
==29292==    at 0x6234AB: __builtin_vec_new (vg_replace_malloc.c:203)
==29292==    by 0x817B0A3: CUpDownClient::ProcessFileStatus(bool, CSafeMemFile*, CPartFile*) (DownloadClient.cpp:433)
==29292==    by 0x8144C92: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1307)
==29292==    by 0x814626D: CClientReqSocket::PacketReceived(Packet*) (ListenSocket.cpp:1711)
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8158FD2: CUpDownClient::HasLowID() (updownclient.h:147)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FCF4 is 44 bytes inside a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== Invalid read of size 4
==29292==    at 0x8155771: CUpDownClient::TryToConnect(bool) (BaseClient.cpp:1200)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FCC8 is 0 bytes inside a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== Invalid write of size 4
==29292==    at 0x813F0CE: CClientReqSocket::CClientReqSocket(CPreferences*, CUpDownClient*) (ListenSocket.cpp:65)
==29292==    by 0x81557B5: CUpDownClient::TryToConnect(bool) (BaseClient.cpp:1201)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    Address 0x4367FCC8 is 0 bytes inside a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== Invalid write of size 4
==29292==    at 0x81557BF: CUpDownClient::TryToConnect(bool) (BaseClient.cpp:1201)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FCC8 is 0 bytes inside a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== Invalid read of size 4
==29292==    at 0x81557F7: CUpDownClient::TryToConnect(bool) (BaseClient.cpp:1203)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FCC8 is 0 bytes inside a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== Invalid read of size 1
==29292==    at 0x9EC4D0: __GI___inet_aton (in /lib/libc-2.3.2.so)
==29292==    by 0x815917E: amuleIPV4Address::Hostname(char*) (amuleIPV4Address.h:46)
==29292==    by 0x8155CC2: CUpDownClient::TryToConnect(bool) (BaseClient.cpp:1261)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    Address 0x4367FD0C is not stack'd, malloc'd or free'd
==29292==
==29292== Invalid read of size 2
==29292==    at 0x8158FE8: CUpDownClient::GetUserPort() (updownclient.h:149)
==29292==    by 0x817A185: CUpDownClient::AskForDownload() (DownloadClient.cpp:136)
==29292==    by 0x822A054: CPartFile::Process(unsigned, unsigned char) (PartFile.cpp:1815)
==29292==    by 0x818CD87: CDownloadQueue::Process() (DownloadQueue.cpp:376)
==29292==    Address 0x4367FCF8 is 0 bytes after a block of size 48 free'd
==29292==    at 0x6235AC: free (vg_replace_malloc.c:231)
==29292==    by 0xE0AB10: wxString::~wxString() (in /usr/lib/libwx_gtk-2.4.so.0.1.1)
==29292==    by 0x817AE0C: CUpDownClient::ProcessFileInfo(CSafeMemFile*, CPartFile*) (DownloadClient.cpp:379)
==29292==    by 0x8144C70: CClientReqSocket::ProcessExtPacket(char*, unsigned, unsigned char) (ListenSocket.cpp:1302)
==29292==
==29292== More than 50 errors detected.  Subsequent errors
==29292== will still be recorded, but in less detail than before.
==29292==
Logged