aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Pages: 1 ... 35 36 [37]

Author Topic: RRM's epic struggle for a better aMule on high-speed connections  (Read 165693 times)

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #540 on: February 25, 2011, 06:37:55 PM »

Its a high VSZ crash.

$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build/lib gdb amule
/usr/local/stow/amule-pre-stu/bin/amule
aMule SVN compiled with wxGTK2 v2.8.11 (Debugging) (Snapshot: rev. 10454)

Terminated after throwing an instance of 'std::bad_alloc'
   what(): std::bad_alloc

Program received signal SIGABRT, Aborted.
0x0012d422 in __kernel_vsyscall ()

$ ps axl | grep amule
Code: [Select]
0  1000  2261  2229  20   0 122032  5452 poll_s S+   pts/1      0:02 gdb amule
0  1000  2263  2261  20   0 3144728 2648796 ptrace Tl pts/1   1612:56 /usr/local/stow/amule-pre-stu/bin/amule

(gdb) bt full
Code: [Select]
#0  0x0012d422 in __kernel_vsyscall ()
No symbol table info available.
#1  0x00ec04d1 in raise () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2  0x00ec3932 in abort () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#3  0x08340ead in OnUnhandledException () at MuleDebug.cpp:104
        t = 0x0
        output = 0xfd7560
#4  0x00e1a415 in ?? () from /usr/lib/libstdc++.so.6
No symbol table info available.
#5  0x00e1a452 in std::terminate() () from /usr/lib/libstdc++.so.6
No symbol table info available.
#6  0x00e1a591 in __cxa_throw () from /usr/lib/libstdc++.so.6
No symbol table info available.
#7  0x00e1ac0f in operator new(unsigned int) () from /usr/lib/libstdc++.so.6
No symbol table info available.
#8  0x00b8068c in wxSocketEvent::Clone (this=0xbfffefd0)
    at ./include/wx/socket.h:314
No locals.
#9  0x00cbd702 in wxEvtHandler::AddPendingEvent (this=0x85fd340, event=...)
    at ./src/common/event.cpp:1135
        eventCopy = 0xb80608
---Type <return> to continue, or q <return> to quit---
        __FUNCTION__ = "AddPendingEvent"
#10 0x00b7ed4a in wxSocketBase::OnRequest (this=0x9f84578,
    notification=wxSOCKET_OUTPUT) at ./src/common/socket.cpp:1006
        event = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x85f6368,
              static ms_classInfo = {m_className = 0xcf5a48 L"wxObject",
                m_objectSize = 8, m_objectConstructor = 0, m_baseInfo1 = 0x0,
                m_baseInfo2 = 0x0, static sm_first = 0x741dcc,
                m_next = 0xd5e724, static sm_classTable = 0x8603008},
              m_refData = 0x0}, m_eventObject = 0x9f84578,
            m_eventType = 10002, m_timeStamp = 0, m_id = 6123,
            m_callbackUserData = 0x0, m_propagationLevel = 0,
            m_skipped = false, m_isCommandEvent = false,
            static ms_classInfo = {m_className = 0xd0cd00 L"wxEvent",
              m_objectSize = 36, m_objectConstructor = 0,
              m_baseInfo1 = 0xd5e6b8, m_baseInfo2 = 0x0,
              static sm_first = 0x741dcc, m_next = 0xd5f788,
              static sm_classTable = 0x8603008}}, m_event = wxSOCKET_OUTPUT,
          m_clientData = 0x0, static ms_classInfo = {
            m_className = 0xb890dc L"wxSocketEvent", m_objectSize = 44,
            m_objectConstructor = 0xb7d132 <wxSocketEvent::wxCreateObject()>,
            m_baseInfo1 = 0xd5f7a0, m_baseInfo2 = 0x0,
            static sm_first = 0x741dcc, m_next = 0xb93b8c,
            static sm_classTable = 0x8603008}}
---Type <return> to continue, or q <return> to quit---
        flag = 2
#11 0x00b7eb7e in wx_socket_callback (notification=GSOCK_OUTPUT,
    cdata=0x9f84578 "h\023A\b") at ./src/common/socket.cpp:942
        sckobj = 0x9f84578
#12 0x00b850cb in GSocket::Detected_Write (this=0xc1b2ea8)
    at ./src/unix/gsocket.cpp:1851
No locals.
#13 0x008c3084 in _GSocket_GDK_Input (data=0xc1b2ea8, source=70,
    condition=GDK_INPUT_WRITE) at ./src/gtk/gsockgtk.cpp:41
        socket = 0xc1b2ea8
#14 0x013bcf7c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#15 0x016d6dab in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#16 0x0169fe88 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
No symbol table info available.
#17 0x016a3730 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#18 0x016a3b9f in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#19 0x01116419 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#20 0x008c1089 in wxEventLoop::Run (this=0x8d80660) at ./src/gtk/evtloop.cpp:76
---Type <return> to continue, or q <return> to quit---
        __FUNCTION__ = "Run"
        activate = {m_evtLoopOld = 0x0}
        exitcode = -1073745096
#21 0x00962c53 in wxAppBase::MainLoop (this=0x8633028)
    at ./src/common/appcmn.cpp:312
        mainLoop = {<wxEventLoopPtr> = {m_ptr = 0x8d80660}, m_pp = 0x8633068,
          m_pOld = 0x0}
#22 0x00962db3 in wxAppBase::OnRun (this=0x8633028)
    at ./src/common/appcmn.cpp:367
No locals.
#23 0x00c4d224 in wxEntry (argc=@0xd5d528, argv=0x8622888)
    at ./src/common/init.cpp:448
        callOnExit = {<No data fields>}
        initializer = {m_ok = true}
#24 0x00c4d2ea in wxEntry (argc=@0xbffff420, argv=0xbffff4c4)
    at ./src/common/init.cpp:460
No locals.
#25 0x0823dc9b in main (argc=1, argv=0xbffff4c4) at amule-gui.cpp:93
No locals.

(gdb) thread apply all bt full
Code: [Select]

Thread 6 (Thread 0xb63fdb70 (LWP 2280)):
#0  0x0012d422 in __kernel_vsyscall ()
No symbol table info available.
#1  0x00138142 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
#2  0x00cb8973 in wxConditionInternal::WaitTimeout (this=0x8d40318,
    milliseconds=100) at ./src/unix/threadpsx.cpp:405
        curtime = {m_ll = 1298646596106}
        temp = {m_ll = 106}
        sec = 1298646596
        millis = 106
        tspec = {tv_sec = 1298646596, tv_nsec = 106000000}
        err = 302
#3  0x00cbb91f in wxCondition::WaitTimeout (this=0x8d981ac, milliseconds=100)
    at ./include/wx/thrimpl.cpp:256
        __FUNCTION__ = "WaitTimeout"
#4  0x00cb8ed9 in wxSemaphoreInternal::WaitTimeout (this=0x8d981a8,
    milliseconds=100) at ./src/unix/threadpsx.cpp:552
        elapsed = {m_ll = 0}
        remainingTime = 100
        locker = {m_isOk = true, m_mutex = @0x8d981a8}
---Type <return> to continue, or q <return> to quit---
        startTime = {m_ll = 1298646596006}
#5  0x00cbbce7 in wxSemaphore::WaitTimeout (this=0x8692ad0, milliseconds=100)
    at ./include/wx/thrimpl.cpp:320
        __FUNCTION__ = "WaitTimeout"
#6  0x0833d232 in CTimerThread::Entry (this=0x8692ab0) at Timer.cpp:66
        now = <value optimized out>
        delta = 0
        evt = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x847b028,
              static ms_classInfo = {m_className = 0xcf5a48 L"wxObject",
                m_objectSize = 8, m_objectConstructor = 0, m_baseInfo1 = 0x0,
                m_baseInfo2 = 0x0, static sm_first = 0x741dcc,
                m_next = 0xd5e724, static sm_classTable = 0x8603008},
              m_refData = 0x0}, m_eventObject = 0x0, m_eventType = 10245,
            m_timeStamp = 0, m_id = 6128, m_callbackUserData = 0x0,
            m_propagationLevel = 0, m_skipped = false,
            m_isCommandEvent = false, static ms_classInfo = {
              m_className = 0xd0cd00 L"wxEvent", m_objectSize = 36,
              m_objectConstructor = 0, m_baseInfo1 = 0xd5e6b8,
              m_baseInfo2 = 0x0, static sm_first = 0x741dcc,
              m_next = 0xd5f788,
              static sm_classTable = 0x8603008}}, <No data fields>}
        lastEvent = 1566472614
#7  0x00cb9192 in wxThreadInternal::PthreadStart (thread=0x8692ab0)
---Type <return> to continue, or q <return> to quit---
    at ./src/unix/threadpsx.cpp:766
        __clframe = {__cancel_routine = 0xcb92d3 <wxPthreadCleanup>,
          __cancel_arg = 0x8692ab0, __do_it = 1, __cancel_type = 0}
        pthread = 0x8d759b8
        rc = 0
        dontRunAtAll = false
        __FUNCTION__ = "PthreadStart"
#8  0x00cb903c in wxPthreadStart (ptr=0x8692ab0)
    at ./src/unix/threadpsx.cpp:718
No locals.
#9  0x0013380e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
#10 0x00f62a0e in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.

Thread 3 (Thread 0xb73ffb70 (LWP 2277)):
#0  0x0012d422 in __kernel_vsyscall ()
No symbol table info available.
#1  0x0013b466 in nanosleep () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
#2  0x00cc199a in wxMicroSleep (microseconds=1000000)
    at ./src/unix/utilsunx.cpp:191
        tmReq = {tv_sec = 1, tv_nsec = 0}
---Type <return> to continue, or q <return> to quit---
#3  0x00cc19c3 in wxMilliSleep (milliseconds=1000)
    at ./src/unix/utilsunx.cpp:212
No locals.
#4  0x00cb9a37 in wxThread::Sleep (milliseconds=1000)
    at ./src/unix/threadpsx.cpp:986
No locals.
#5  0x081d87d0 in UploadBandwidthThrottler::Entry (this=0x8c6b4e0)
    at UploadBandwidthThrottler.cpp:323
        timeSinceLastLoop = <value optimized out>
        minFragSize = 1300
        doubleSendSize = 2600
        sleepTime = 1000
        thisLoopTick = 1566472696
        bytesToSpend = <value optimized out>
        extraSleepTime = 1000
        lastLoopTick = 1566472696
        allowedDataRate = 5120000
        rememberedSlotCounter = 27
        sendLock = {m_isOk = false, m_mutex = @0x0}
#6  0x00cb9192 in wxThreadInternal::PthreadStart (thread=0x8c6b4e0)
    at ./src/unix/threadpsx.cpp:766
        __clframe = {__cancel_routine = 0xcb92d3 <wxPthreadCleanup>,
          __cancel_arg = 0x8c6b4e0, __do_it = 1, __cancel_type = 0}
---Type <return> to continue, or q <return> to quit---
        pthread = 0x8c9c2d8
        rc = 0
        dontRunAtAll = false
        __FUNCTION__ = "PthreadStart"
#7  0x00cb903c in wxPthreadStart (ptr=0x8c6b4e0)
    at ./src/unix/threadpsx.cpp:718
No locals.
#8  0x0013380e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
#9  0x00f62a0e in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.

Thread 1 (Thread 0xb7fdb760 (LWP 2263)):
#0  0x0012d422 in __kernel_vsyscall ()
No symbol table info available.
#1  0x00ec04d1 in raise () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#2  0x00ec3932 in abort () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#3  0x08340ead in OnUnhandledException () at MuleDebug.cpp:104
        t = 0x0
        output = 0xfd7560
#4  0x00e1a415 in ?? () from /usr/lib/libstdc++.so.6
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#5  0x00e1a452 in std::terminate() () from /usr/lib/libstdc++.so.6
No symbol table info available.
#6  0x00e1a591 in __cxa_throw () from /usr/lib/libstdc++.so.6
No symbol table info available.
#7  0x00e1ac0f in operator new(unsigned int) () from /usr/lib/libstdc++.so.6
No symbol table info available.
#8  0x00b8068c in wxSocketEvent::Clone (this=0xbfffefd0)
    at ./include/wx/socket.h:314
No locals.
#9  0x00cbd702 in wxEvtHandler::AddPendingEvent (this=0x85fd340, event=...)
    at ./src/common/event.cpp:1135
        eventCopy = 0xb80608
        __FUNCTION__ = "AddPendingEvent"
#10 0x00b7ed4a in wxSocketBase::OnRequest (this=0x9f84578,
    notification=wxSOCKET_OUTPUT) at ./src/common/socket.cpp:1006
        event = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x85f6368,
              static ms_classInfo = {m_className = 0xcf5a48 L"wxObject",
                m_objectSize = 8, m_objectConstructor = 0, m_baseInfo1 = 0x0,
                m_baseInfo2 = 0x0, static sm_first = 0x741dcc,
                m_next = 0xd5e724, static sm_classTable = 0x8603008},
              m_refData = 0x0}, m_eventObject = 0x9f84578,
            m_eventType = 10002, m_timeStamp = 0, m_id = 6123,
---Type <return> to continue, or q <return> to quit---
            m_callbackUserData = 0x0, m_propagationLevel = 0,
            m_skipped = false, m_isCommandEvent = false,
            static ms_classInfo = {m_className = 0xd0cd00 L"wxEvent",
              m_objectSize = 36, m_objectConstructor = 0,
              m_baseInfo1 = 0xd5e6b8, m_baseInfo2 = 0x0,
              static sm_first = 0x741dcc, m_next = 0xd5f788,
              static sm_classTable = 0x8603008}}, m_event = wxSOCKET_OUTPUT,
          m_clientData = 0x0, static ms_classInfo = {
            m_className = 0xb890dc L"wxSocketEvent", m_objectSize = 44,
            m_objectConstructor = 0xb7d132 <wxSocketEvent::wxCreateObject()>,
            m_baseInfo1 = 0xd5f7a0, m_baseInfo2 = 0x0,
            static sm_first = 0x741dcc, m_next = 0xb93b8c,
            static sm_classTable = 0x8603008}}
        flag = 2
#11 0x00b7eb7e in wx_socket_callback (notification=GSOCK_OUTPUT,
    cdata=0x9f84578 "h\023A\b") at ./src/common/socket.cpp:942
        sckobj = 0x9f84578
#12 0x00b850cb in GSocket::Detected_Write (this=0xc1b2ea8)
    at ./src/unix/gsocket.cpp:1851
No locals.
#13 0x008c3084 in _GSocket_GDK_Input (data=0xc1b2ea8, source=70,
    condition=GDK_INPUT_WRITE) at ./src/gtk/gsockgtk.cpp:41
        socket = 0xc1b2ea8
---Type <return> to continue, or q <return> to quit---
#14 0x013bcf7c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#15 0x016d6dab in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#16 0x0169fe88 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
No symbol table info available.
#17 0x016a3730 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#18 0x016a3b9f in g_main_loop_run () from /lib/libglib-2.0.so.0
No symbol table info available.
#19 0x01116419 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#20 0x008c1089 in wxEventLoop::Run (this=0x8d80660) at ./src/gtk/evtloop.cpp:76
        __FUNCTION__ = "Run"
        activate = {m_evtLoopOld = 0x0}
        exitcode = -1073745096
#21 0x00962c53 in wxAppBase::MainLoop (this=0x8633028)
    at ./src/common/appcmn.cpp:312
        mainLoop = {<wxEventLoopPtr> = {m_ptr = 0x8d80660}, m_pp = 0x8633068,
          m_pOld = 0x0}
#22 0x00962db3 in wxAppBase::OnRun (this=0x8633028)
    at ./src/common/appcmn.cpp:367
No locals.
---Type <return> to continue, or q <return> to quit---
#23 0x00c4d224 in wxEntry (argc=@0xd5d528, argv=0x8622888)
    at ./src/common/init.cpp:448
        callOnExit = {<No data fields>}
        initializer = {m_ok = true}
#24 0x00c4d2ea in wxEntry (argc=@0xbffff420, argv=0xbffff4c4)
    at ./src/common/init.cpp:460
No locals.
#25 0x0823dc9b in main (argc=1, argv=0xbffff4c4) at amule-gui.cpp:93
No locals.
Logged

btkaos

  • Global Moderator
  • Sr. Member
  • *****
  • Karma: 110
  • Offline Offline
  • Posts: 486
  • Kaos is infinite!
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #541 on: February 25, 2011, 11:30:18 PM »

Its a high VSZ crash.
Same crash as always. We get an infinite number of events from glib, starving WX processing and going OOM.
Quote
$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build/lib gdb amule
/usr/local/stow/amule-pre-stu/bin/amule
aMule SVN compiled with wxGTK2 v2.8.11 (Debugging) (Snapshot: rev. 10454)
Umm, from your instruction you are running with the wx patch. Anyways I'd double check that.
(By building  a patched wx to other dir like build2,  or whatever)

So if your testing is right we have some more bugs in wx but we will have more patches to try :)

Dear RRM, what difference can you see between running the patched vs unpatched lib, that is:

Code: [Select]
$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build/lib gdb amule
$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build-wo-patch/lib gdb amule

Do them crash at the same time? Do both feel sluggish? Knowing what the differences are could be fundamental.

Keep in mind that so far the wx patch did make a great difference for me.
Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #542 on: February 26, 2011, 09:12:57 PM »

Anyways I'd double check that.
(By building  a patched wx to other dir like build2,  or whatever)

Ok, i will when i have some time.

Quote
Do them crash at the same time? Do both feel sluggish? Knowing what the differences are could be fundamental.

The non-patched version crashed sooner.
they both feel sluggish, but the non-patched version more so.
Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #543 on: March 01, 2011, 12:56:55 PM »

... Anyways I'd double check that.
(By building  a patched wx to other dir like build2,  or whatever)

OK:
Removed ~/rrm/temp-amule/wxWidgets-2.8.11/ and wxWidgets-2.8.11.tar.gz
Code: [Select]
$ cd temp-amule
$ wget http://downloads.sourceforge.net/project/wxwindows/2.8.11/wxWidgets-2.8.11.tar.gz
$ tar xvfz wxWidgets-2.8.11.tar.gz
$ cd wxWidgets-2.8.11
saved kry.patch in this same folder
$ patch -p0 < kry.patch
$ ./configure --prefix=/home/rrm/temp-amule/build2/ --enable-debug --enable-unicode
$ make clean && make install

Code: [Select]
$ cd amule-pre-stu
the EMSocket.cpp is how it should be, including:
if (byConnected == ES_CONNECTED && IsEncryptionLayerReady() && !(m_bBusy && onlyAllowedToSendControlPacket)) {
$ ./configure --prefix=/usr/local/stow/amule-pre-stu --enable-debug --enable-optimize --with-wxdebug --with-wx-prefix=/home/rrm/temp-amule/build2
$ make clean
$ make -j 2 && sudo make install
$ cd /usr/local/stow
$ sudo stow -D amule-opt
$ sudo stow amule-pre-stu

$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build2/lib gdb amule
Code: [Select]
This is aMule SVN compiled with wxGTK2 v2.8.11 (Debugging) (Snapshot: rev. 10454) based on eMule.
$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build2/lib ldd /usr/local/stow/amule-pre-stu/bin/amule
Code: [Select]
linux-gate.so.1 =>  (0x0097a000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x0066a000)
libbfd-2.20.so => /usr/lib/libbfd-2.20.so (0x00b31000)
libz.so.1 => /lib/libz.so.1 (0x00dc8000)
libcrypto++.so.8 => /usr/lib/libcrypto++.so.8 (0x00110000)
libupnp.so.3 => /usr/lib/libupnp.so.3 (0x00f22000)
libthreadutil.so.2 => /usr/lib/libthreadutil.so.2 (0x00500000)
libixml.so.2 => /usr/lib/libixml.so.2 (0x00d4a000)
libwx_gtk2ud_adv-2.8.so.0 => /home/rrm/temp-amule/build2/lib/libwx_gtk2ud_adv-2.8.so.0 (0x00506000)
libwx_gtk2ud_core-2.8.so.0 => /home/rrm/temp-amule/build2/lib/libwx_gtk2ud_core-2.8.so.0 (0x00f3f000)
libwx_baseud_net-2.8.so.0 => /home/rrm/temp-amule/build2/lib/libwx_baseud_net-2.8.so.0 (0x005f8000)
libwx_baseud-2.8.so.0 => /home/rrm/temp-amule/build2/lib/libwx_baseud-2.8.so.0 (0x00683000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0084f000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00c65000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00632000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x0097b000)
/lib/ld-linux.so.2 (0x00cac000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00650000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x05313000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00dde000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00941000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00ac0000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x0095e000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00e73000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00ae9000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00cc9000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00c09000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00d54000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00654000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00659000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x0065f000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x0615c000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00c36000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00c39000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00d92000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x08b8b000)
libtiff.so.4 => /usr/lib/libtiff.so.4 (0x0905f000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00c42000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x03a3b000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00c4f000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00c53000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00c56000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x01df9000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00c8b000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00c9b000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00d3e000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00c5c000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00db7000)
libpcre.so.3 => /lib/libpcre.so.3 (0x03de4000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0x00f09000)
libselinux.so.1 => /lib/libselinux.so.1 (0x041a5000)
libexpat.so.1 => /lib/libexpat.so.1 (0x093fe000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x04b85000)
libuuid.so.1 => /lib/libuuid.so.1 (0x00ca5000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x059f7000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x01d9b000)
libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x01355000)
libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x013cf000)
libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x04d6a000)
libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00dc2000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x013d9000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00f1d000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0521b000)
Logged

btkaos

  • Global Moderator
  • Sr. Member
  • *****
  • Karma: 110
  • Offline Offline
  • Posts: 486
  • Kaos is infinite!
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #544 on: March 02, 2011, 12:19:20 AM »

Thanks very much RRM. If that crashes, please try to get several backtraces if you can, either using my script to stop amule in High VSZ or by hand.

By several backtraces I mean getting a backtrace, pressing 'c' inside gdb and quickly pressing Ctrl-C, and then bt.

Also if that crashes STU did a logging patch that may help, ideally that would be the next thing to try.

Let's see what happens, don't hesitate to ask any question.

[By the way, maybe we could work better using IRC or whatever system. I don't mind, if you think that would be better for you PM me]
Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #545 on: March 02, 2011, 12:40:47 PM »

aMule SVN compiled with wxGTK2 v2.8.11 (Debugging) (Snapshot: rev. 10454) based on eMule.
(--with-wx-prefix=/home/rrm/temp-amule/build2)

It took a while before this mule crashed, but here it is;
another high-VSZ crash.
$ ps axl | grep amule
Code: [Select]
0  1000 11172 11170  20   0 199168 145248 futex_ Sl+ pts/1     60:02 /usr/local/stow/amule-pre-stu/bin/amule
0  1000 11172 11170  20   0 230276 176464 futex_ Sl+ pts/1    567:56 /usr/local/stow/amule-pre-stu/bin/amule
0  1000 11172 11170  20   0 265384 202732 -     Rl+  pts/1    1346:57 /usr/local/stow/amule-pre-stu/bin/amule
0  1000 11172 11170  20   0 3144728 2576960 sync_p Dl+ pts/1  1609:10 /usr/local/stow/amule-pre-stu/bin/amule

(amule:11172): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed

Terminated after throwing an instance of 'std::bad_alloc'
   what(): std::bad_alloc
Error while getting symbol table : Memory exhausted
***MEMORY-ERROR***: amule[11172]: GSlice: failed to allocate 120 bytes (alignment: 128): Cannot allocate memory

Program received signal SIGABRT, Aborted.
0x0012d422 in __kernel_vsyscall ()

Thanks very much RRM. If that crashes, please try to get several backtraces if you can, either using my script to stop amule in High VSZ or by hand.

Can you please supply me with the script, and tell me how to use it?

Quote
pressing 'c' inside gdb and quickly pressing Ctrl-C, and then bt.

I get this:
No thread selected
The program is not being run.

Quote
Also if that crashes STU did a logging patch that may help, ideally that would be the next thing to try.

Ok. How can i get it?

After trying to press 'c' inside gdb and quickly pressing Ctrl-C, and then bt,
i cannot get a normal bt backtrace anymore
("no stack")

Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #546 on: March 02, 2011, 01:05:48 PM »

Suppose that the 2 following types of crashes are unrelated:

- Crashes confined to big pipe users (> 1 MB/s upload), regardless of wx version (solved by Stu's EMSocket.cpp patch).
- Crashes confined to wxWidgets 2.8.11 (Ubuntu 10.04 and 10.10), but not confined to big pipe users (solved by Kry's wx patch).

Then aMule SVN run by a normal user (and with Ubuntu 10.04 or 10.10), linking against wxWidgets 2.8.10 will not crash. (can somebody try?)
And...
Then this version should crash on my system: with Stu's patch, but using wxWidgets 2.8.11 without Kry's patch.
Lets see...

Code: [Select]
$ cd amule-pre-stu
in the EMSocket.cpp replace:
if(byConnected == ES_CONNECTED && IsEncryptionLayerReady() && !(m_bBusy && onlyAllowedToSendControlPacket)) {
by:
if(byConnected == ES_CONNECTED && IsEncryptionLayerReady() && (!m_bBusy || onlyAllowedToSendControlPacket)) {
$ ./configure --prefix=/usr/local/stow/amule-pre-stu --enable-debug --enable-optimize --with-wxdebug --with-wx-prefix=/home/rrm/temp-amule/build-wo-patch
$ make clean
$ make -j 2 && sudo make install

$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build-wo-patch/lib gdb amule
Code: [Select]
Starting program: /usr/local/stow/amule-pre-stu/bin/amule
Initialising aMule SVN compiled with wxGTK2 v2.8.11 (Debugging) (Snapshot: rev. 10454)

$ LD_LIBRARY_PATH=/home/rrm/temp-amule/build-wo-patch/lib ldd /usr/local/stow/amule-pre-stu/bin/amule
It says amule-pre-stu, but its actually aMule with the Stu patch,
with wxwidgets 2.8.11, without the wx patch.
Code: [Select]
linux-gate.so.1 =>  (0x00180000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x009be000)
libbfd-2.20.so => /usr/lib/libbfd-2.20.so (0x0040b000)
libz.so.1 => /lib/libz.so.1 (0x00110000)
libcrypto++.so.8 => /usr/lib/libcrypto++.so.8 (0x004e3000)
libupnp.so.3 => /usr/lib/libupnp.so.3 (0x00126000)
libthreadutil.so.2 => /usr/lib/libthreadutil.so.2 (0x00143000)
libixml.so.2 => /usr/lib/libixml.so.2 (0x00149000)
libwx_gtk2ud_adv-2.8.so.0 => /home/rrm/temp-amule/build-wo-patch/lib/libwx_gtk2ud_adv-2.8.so.0 (0x00c36000)
libwx_gtk2ud_core-2.8.so.0 => /home/rrm/temp-amule/build-wo-patch/lib/libwx_gtk2ud_core-2.8.so.0 (0x00d28000)
libwx_baseud_net-2.8.so.0 => /home/rrm/temp-amule/build-wo-patch/lib/libwx_baseud_net-2.8.so.0 (0x00376000)
libwx_baseud-2.8.so.0 => /home/rrm/temp-amule/build-wo-patch/lib/libwx_baseud-2.8.so.0 (0x00181000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00a81000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00153000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0034d000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x0627a000)
/lib/ld-linux.so.2 (0x00a64000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00179000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x0883a000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x008d3000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x003b0000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x003cd000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00968000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00b73000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x009d7000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x05625000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00982000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00a1f000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x0036b000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00370000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x003f6000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x03959000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x0017d000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x003ff000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00c09000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x07c23000)
libtiff.so.4 => /usr/lib/libtiff.so.4 (0x037b1000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x009af000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x01ad8000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00a5d000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00408000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00c2e000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x02ffc000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x05c45000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x03ea7000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x02270000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x01d39000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x06aec000)
libpcre.so.3 => /lib/libpcre.so.3 (0x02f6a000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0x029c9000)
libselinux.so.1 => /lib/libselinux.so.1 (0x025df000)
libexpat.so.1 => /lib/libexpat.so.1 (0x026af000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x0113d000)
libuuid.so.1 => /lib/libuuid.so.1 (0x05b49000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x01158000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x04dc7000)
libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x086bf000)
libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x035ac000)
libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x01176000)
libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x0750b000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x043a0000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x0118e000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x03d70000)

Hmmm, this mule does not have a sluggish feel, at all...
Logged

btkaos

  • Global Moderator
  • Sr. Member
  • *****
  • Karma: 110
  • Offline Offline
  • Posts: 486
  • Kaos is infinite!
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #547 on: March 02, 2011, 06:12:19 PM »

Thank you RRM, that was very valuable information, specially the tag bit.

I'll be really busy the next couples of days, I'll try to post my views on this in the weekend.

Regards,
BTK
Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #548 on: March 02, 2011, 08:59:24 PM »

Thank you, Bill.
Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #549 on: March 05, 2011, 06:36:41 AM »

Nah... this mule (Ubuntu 9.10 - SVN with Stu's patch - wxWidgets 2.8.1 without Kry's patch) is still running
(after 3 days) and is not going to crash...

So, imho its not the new wxWidgets 2.8.11.
Still, suppose that the 2 following types of crashes are unrelated:

- Crashes confined to big pipe users (> 1 MB/s upload), regardless of wx version (solved by Stu's EMSocket.cpp patch).
- Crashes confined to Ubuntu 10.04 and 10.10, but certainly not confined to big pipe users (solved by Kry's wx patch).

Obviously, Stu's patch does not solve the second type of crash, and Kry's patch does not solve the first type of crash.
So, what else changed for aMule when going from Ubuntu 9.10 to 10.04?
Can i incorporate it in my system without totally upgrading to 10.04?
Logged

btkaos

  • Global Moderator
  • Sr. Member
  • *****
  • Karma: 110
  • Offline Offline
  • Posts: 486
  • Kaos is infinite!
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #550 on: March 06, 2011, 03:35:29 AM »

Nah... this mule (Ubuntu 9.10 - SVN with Stu's patch - wxWidgets 2.8.1 without Kry's patch) is still running
(after 3 days) and is not going to crash...
:)
Quote
So, what else changed for aMule when going from Ubuntu 9.10 to 10.04?
Can i incorporate it in my system without totally upgrading to 10.04?
Well, when you update to 10.04, amule will be the smaller of your worries :D

You have a configuration that works, that is good. Regarding Kry's patch, could patch amule with this http://forum.amule.org/index.php?topic=18543.msg100747#msg100747 patch and let it run until it crashes?

That patch will log some information about queues, it would be good to know what's the output when it crashes.
Version to test: wx-2.8.11 + Kry patch, amule svn - STU patch + logging patch.
Logged

RRM

  • Sr. Member
  • ****
  • Karma: 40
  • Offline Offline
  • Posts: 444
Re: RRM's epic struggle for a better aMule on high-speed connections
« Reply #551 on: March 08, 2011, 09:37:16 AM »

Thank you.

Version to test: wx-2.8.11 + Kry patch, amule svn - STU patch + logging patch.

Will do so when i find some time.
Logged
Pages: 1 ... 35 36 [37]