Bus error on sh4

Ask for help and report issues not specific to either the Mac OS X or GTK+ versions of Transmission
Post Reply
Vitaliy69
Posts: 6
Joined: Mon Feb 16, 2015 12:04 pm

Bus error on sh4

Post by Vitaliy69 »

Hi everyone!

I could not register at the bug tracker (error from all IPs: "Submission rejected as potential spam -Maximum number of posts per hour for this IP exceeded"), so I post the report here.

I have got Openbox SX4 satellite STB. I build transmission-daemon 2.84 using my own toolchain (gcc 4.8.4, binutils 2.25, libz 1.2.8, curl 7.40.0, openssl 1.0.1j, libevent 2.0.22, but oldest glibc 2.10.1). Daemon works about 2-3 minutes when failed with "Segmentation failed: Bus Error".

I try different config files, set memory limit but no effect.

How I can fix this error?

I needed also I can upload my toolchain, binary and core dumped file.

Thank you!
Vitaliy69
Posts: 6
Joined: Mon Feb 16, 2015 12:04 pm

Re: Bus error on sh4

Post by Vitaliy69 »

Code: Select all

(gdb) bt
#0  evbuffer_commit_space (buf=0x2a969b78, vec=0x29b92838, n_vecs=1) at buffer.c:678
#1  0x004564fc in tr_peerIoWriteBytes (io=0x56ce38, bytes=0x29b9285c, byteCount=511, isPieceData=false) at peer-io.c:1091
#2  0x0047c794 in readYa (handshake=0x563ed0, inbuf=0x4f30e0) at handshake.c:756
#3  0x0047d6c2 in canRead (io=0x56ce38, arg=0x563ed0, piece=0x29b92b74) at handshake.c:1011
#4  0x0045398c in canReadWrapper (io=0x56ce38) at peer-io.c:203
#5  0x00456c0c in tr_peerIoTryRead (io=0x56ce38, howmuch=3000) at peer-io.c:1246
#6  0x0045714e in tr_peerIoFlush (io=0x56ce38, dir=TR_PEER_TO_CLIENT, limit=3000) at peer-io.c:1318
#7  0x004433cc in phaseOne (peerArray=0x29b92e4c, dir=TR_PEER_TO_CLIENT) at bandwidth.c:220
#8  0x00443674 in tr_bandwidthAllocate (b=0x4eb0e4, dir=TR_PEER_TO_CLIENT, period_msec=500) at bandwidth.c:274
#9  0x00461826 in bandwidthPulse (foo=-1, bar=1, vmgr=0x4ebaf8) at peer-mgr.c:3619
#10 0x004a7cbc in event_process_active_single_queue (activeq=0x4e82d8, base=<optimized out>) at event.c:1368
#11 event_process_active (base=<optimized out>) at event.c:1438
#12 event_base_loop (base=0x4eb3f8, flags=<optimized out>) at event.c:1639
#13 0x00426e1c in libeventThreadFunc (veh=0x4e8548) at trevent.c:246
#14 0x00408690 in ThreadFunc (_t=0x4e8598) at platform.c:105
#15 0x29865aa4 in ?? () from /opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/lib/libpthread.so.0
(gdb) thread apply all bt full

Thread 4 (LWP 2071):
#0  0x29924228 in endnetgrent () from /opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/lib/libc.so.6
No symbol table info available.
Backtrace stopped: Cannot access memory at address 0x7b9f5aa0

Thread 3 (LWP 2080):
#0  0x2991de40 in inet_netof () from /opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/lib/libc.so.6
No symbol table info available.
#1  0x004375ae in tr_select (nfds=0, r_fd_set=0x29f93d54, w_fd_set=0x29f93dd4, c_fd_set=0x29f93e54, t=0x29f93ee4) at web.c:366
No locals.
#2  0x00437bec in tr_webThreadFunc (vsession=0x4eafa0) at web.c:477
        usec = 200000
        r_fd_set = {__fds_bits = {0 <repeats 32 times>}}
        max_fd = -1
        t = {tv_sec = 0, tv_usec = 95156}
        w_fd_set = {__fds_bits = {0 <repeats 32 times>}}
        c_fd_set = {__fds_bits = {0 <repeats 32 times>}}
        msec = 200
        unused = 0
        msg = 0x0
        mcode = CURLM_OK
        str = 0x505468 ""
        multi = 0x505490
        web = 0x505420
        taskCount = 0
        task = 0x4efc98
        session = 0x4eafa0
#3  0x00408690 in ThreadFunc (_t=0x4f35e8) at platform.c:105
        t = 0x4f35e8
#4  0x29865aa4 in ?? () from /opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/lib/libpthread.so.0
No symbol table info available.

Thread 2 (LWP 2077):
#0  0x2986c9b6 in ?? () from /opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/lib/libpthread.so.0
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (LWP 2072):
#0  evbuffer_commit_space (buf=0x2a969b78, vec=0x29b92838, n_vecs=1) at buffer.c:678
        chain = <optimized out>
        firstchainp = <optimized out>
        chainp = <optimized out>
        result = -1
        added = 0
        i = <optimized out>
#1  0x004564fc in tr_peerIoWriteBytes (io=0x56ce38, bytes=0x29b9285c, byteCount=511, isPieceData=false) at peer-io.c:1091
        iovec = {iov_base = 0x4f05c0, iov_len = 511}
#2  0x0047c794 in readYa (handshake=0x563ed0, inbuf=0x4f30e0) at handshake.c:756
        ya = "\362\337r\226\314\064\267\030\244\231\257\203q\262\212\353\306\025o\342\002g_\327\003\006w4cW\204$\236\v\v\277\254+\327$'\372\071\375a\000\330\315\a\354]2\210P\300\221\024\000\331\367\276>\307\317.\253\250\066\310\336\000~\210A\376mHY\021f\245@\247e\323\322Y\244\356\327]Wӿ<."
---Type <return> to continue, or q <return> to quit---
        walk = 0x29b92a5b ""
        outbuf = "\321\363\267T<\\\242E\340y[\036\341M/\316c۫3\257\332;\006p\256\nE\343(\353K\363n\362$Ԋ\212\020\276\366lɱH9k@\227\244\212\340M0L\001OG\301\067<\000*\367{\221ކ\207\257z\023\b\036s\005\276\036/1\361\226*Mgb\326U\030\315\342\rČ\333_\216\301\274r\254\370\bFn\025\276\060Ŷ\r\240\216\330\376c\216\066\366\363\071\262\071\262\226_Fp\004\250w\210P\030\275\"A\033\306UT\366BY\\(C\222\246\261\227{\037\314Q\250턣\377\254\025\344\255\314{\236Fh`G\200\236N\002M\352\366l\372@\263\277\001\231\344\370\273HH\346\071d\n1\254\030\003}\253\373\346waq]\344"...
        myKey = 0x56d3a0 ""
        secret = 0x56d400 ""
        len = 415
#3  0x0047d6c2 in canRead (io=0x56ce38, arg=0x563ed0, piece=0x29b92b74) at handshake.c:1011
        ret = READ_NOW
        handshake = 0x563ed0
        inbuf = 0x4f30e0
        readyForMore = true
#4  0x0045398c in canReadWrapper (io=0x56ce38) at peer-io.c:203
        oldLen = 246
        ret = 4471596
        overhead = 5693704
        piece = 0
        used = 0
        now = 1424204344903
        err = false
        done = false
        session = 0x4eafa0
#5  0x00456c0c in tr_peerIoTryRead (io=0x56ce38, howmuch=3000) at peer-io.c:1246
        e = 0
        res = 246
#6  0x0045714e in tr_peerIoFlush (io=0x56ce38, dir=TR_PEER_TO_CLIENT, limit=3000) at peer-io.c:1318
        bytesUsed = 0
#7  0x004433cc in phaseOne (peerArray=0x29b92e4c, dir=TR_PEER_TO_CLIENT) at bandwidth.c:220
        i = 0
        increment = 3000
        bytesUsed = 0
        n = 1
        peerCount = 1
        peers = 0x5548a0
#8  0x00443674 in tr_bandwidthAllocate (b=0x4eb0e4, dir=TR_PEER_TO_CLIENT, period_msec=500) at bandwidth.c:274
        i = 1
        peerCount = 1
        tmp = {items = 0x4e8a38, n_items = 1, n_alloc = 32}
        low = {items = 0x50f200, n_items = 1, n_alloc = 32}
        high = {items = 0x0, n_items = 0, n_alloc = 0}
        normal = {items = 0x5548a0, n_items = 1, n_alloc = 32}
        peers = 0x4e8a38
#9  0x00461826 in bandwidthPulse (foo=-1, bar=1, vmgr=0x4ebaf8) at peer-mgr.c:3619
        tor = 0x4eb474
        mgr = 0x4ebaf8
        session = 0x4eafa0
#10 0x004a7cbc in event_process_active_single_queue (activeq=0x4e82d8, base=<optimized out>) at event.c:1368
        ev = 0x4ebb70
        count = 1
#11 event_process_active (base=<optimized out>) at event.c:1438
---Type <return> to continue, or q <return> to quit---
        activeq = 0x4e82d8
        i = 0
        c = 0
#12 event_base_loop (base=0x4eb3f8, flags=<optimized out>) at event.c:1639
        evsel = 0x4d1d48 <epollops>
        tv = {tv_sec = 0, tv_usec = 426977}
        tv_p = <optimized out>
        res = <optimized out>
        done = 0
        retval = 0
        __func__ = "event_base_loop"
#13 0x00426e1c in libeventThreadFunc (veh=0x4e8548) at trevent.c:246
        base = 0x4eb3f8
        eh = 0x4e8548
#14 0x00408690 in ThreadFunc (_t=0x4e8598) at platform.c:105
        t = 0x4e8598
#15 0x29865aa4 in ?? () from /opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/lib/libpthread.so.0
No symbol table info available.
configure string:

Code: Select all

./configure --host=sh4-unknown-linux-gnu --prefix=/var --enable-lightweight --enable-daemon --disable-nls --disable-mac  PKG_CONFIG_PATH="/opt/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/lib/pkgconfig" CFLAGS='-g -O0 -DDEBUG' CXXFLAGS='-g -O0' CPPFLAGS='-g -O0'
Vitaliy69
Posts: 6
Joined: Mon Feb 16, 2015 12:04 pm

Re: Bus error on sh4

Post by Vitaliy69 »

The same configure string and libs but for arm (Asus AC-56U) work fine! SH4 - same bus error.

If I not mistake "evbuffer commit space" core dump stack function from libevent lib. I tried libevent 2.0.10...2.0.22, but no succes for sh4. :cry: Any ideas? Please...
Vitaliy69
Posts: 6
Joined: Mon Feb 16, 2015 12:04 pm

Re: Bus error on sh4

Post by Vitaliy69 »

Not understand... Should I to use new version of glibc? I have an "glibc_2.11 not found" under glibc >= 2.11 in my toolchain in my STB. Required "fallocated64" func. I will try to disabled it today in "fdlimit.c" file (use old style) and compile with glibc 2.19. May be it will be help...

Also studied error with "evbuffer_commit_space". It's generated by "EVBUFFER_LOCK(buf)" at 678 string at libevent 2.0.22. Can I fix this call?

STB have enough free space and 512 RAM (about 400 Mb free).
Vitaliy69
Posts: 6
Joined: Mon Feb 16, 2015 12:04 pm

Re: Bus error on sh4

Post by Vitaliy69 »

I can not register at bug tracker. :( I receive an error all the time for the some days: "Submission rejected as potential spam". :evil: Can you post this bug report? Thank you!

Some tests results...

Update glibc to 2.19 - Bus error
Comment the string "EVBUFFER_LOCK(buf)" at the function "evbuffer_commit_space" (file buffer.c) in libevent - Bus error
Update libevent to libevent-2.1.5-beta - Bus error

I have not got any ideas... May be it's a libevent bug for SH4 platform. I post the bug report: https://sourceforge.net/p/levent/bugs/349/
Vitaliy69
Posts: 6
Joined: Mon Feb 16, 2015 12:04 pm

Re: Bus error on sh4

Post by Vitaliy69 »

Please! Make a bug report to trac.transmissionbt.com! I can not register!
mike.dld
Transmission Developer
Posts: 306
Joined: Wed Dec 25, 2013 10:56 pm

Re: Bus error on sh4

Post by mike.dld »

What revision of Transmission are you using (written in braces after version when you execute `transmission-daemon --version`)? Since you want to file a bug report that much, could you try other (higher and lower) revisions to try and find the one which doesn't crash? Could you also try compiling libevent with `-g -O0`? Otherwise it's still hard to tell what is going wrong.
Post Reply