Treferwynd / transmission-remote-gtk

Automatically exported from code.google.com/p/transmission-remote-gtk
GNU General Public License v2.0
0 stars 0 forks source link

Segmentationfault #214

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Segmentationfault on compilation of todays source 
(r=1242280417c39780fddcf89537b0f80fcfbffa31). This is with both default gtk and 
--enable-gtk3. Earlier revision from 2012-08-19 has worked flawlessly.

Please advise how to find the error, since starting from terminal does only say 
segm. fault.

I'm on Arch linux with:
gtk3 3.4.4-1
libproxy 0.4.7-2
libunique 1.1.6-5
json-glib 0.14.2-1
gcc 4.7.1-6
autoconf 2.69-1

I do have these installed; 'gtk3' 'hicolor-icon-theme' 'geoip' 'libproxy' 
'libunique' 'json-glib' 'libnotify' 'gconf' 'desktop-file-utils' 'curl'

Am I missing something? What more info is needed to find the bug?

Stable version 1.0.2-1 compiled source from works totally fine.

Original issue reported on code.google.com by weba...@gmail.com on 1 Sep 2012 at 7:23

GoogleCodeExporter commented 9 years ago
Hi,

Lots of changes since the 19th :) I've added a new Transmission UI style.

I'll need a gdb backtrace, with the debugging symbols present. If you're 
compiling from source you probably want to 'gdb path/to/binary', 'run', then 
'bt full' when it crashes. See here for more info:

https://wiki.archlinux.org/index.php/Debug_-_Getting_Traces

Original comment by a...@eth0.org.uk on 1 Sep 2012 at 7:32

GoogleCodeExporter commented 9 years ago
Thanks for the prompt reply. Followed the arch wiki and ran gdb and bt. This is 
the output, hope you can interpret it:

This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/transmission-remote-gtk...done.
(gdb) run
Starting program: /usr/bin/transmission-remote-gtk 
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.3200.4-gdb.py", line 9, in <module>
    from gobject import register
  File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
    import gdb.backtrace
ImportError: No module named backtrace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0xb67cfb40 (LWP 6454)]
[New Thread 0xb5dffb40 (LWP 6455)]
[New Thread 0xb55feb40 (LWP 6456)]
[New Thread 0xb4dfdb40 (LWP 6458)]

Program received signal SIGSEGV, Segmentation fault.
0xb74246f6 in __strlen_sse2_bsf () from /usr/lib/libc.so.6
(gdb) bt
#0  0xb74246f6 in __strlen_sse2_bsf () from /usr/lib/libc.so.6
#1  0xb764e2de in g_strdup () from /usr/lib/libglib-2.0.so.0
#2  0xb771b070 in ?? () from /usr/lib/libgobject-2.0.so.0
#3  0xb7be9485 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#4  0xb7bea56c in gtk_list_store_set_valist () from /usr/lib/libgtk-x11-2.0.so.0
#5  0xb7bea5df in gtk_list_store_set () from /usr/lib/libgtk-x11-2.0.so.0
#6  0x080735d4 in update_torrent_iter (model=model@entry=0x81000f8, tc=tc@entry=
    0x80f7050, rpcv=14, serial=1, iter=iter@entry=0xbffff1e0, t=t@entry=0x8174f40, 
    stats=stats@entry=0x8100140, whatsChanged=whatsChanged@entry=0xbffff1d4)
    at trg-torrent-model.c:504
#7  0x08073c1d in trg_torrent_model_update (model=0x81000f8, 
tc=tc@entry=0x80f7050, 
    response=0x8174f70, mode=mode@entry=0) at trg-torrent-model.c:725
#8  0x08081197 in on_torrent_get (data=data@entry=0xafc00c68, mode=mode@entry=0)
    at trg-main-window.c:1288
#9  0x080825a6 in on_torrent_get_first (data=0xafc00c68) at 
trg-main-window.c:1328
#10 0xb762f210 in ?? () from /usr/lib/libglib-2.0.so.0
#11 0xb7631733 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#12 0xb7631ad0 in ?? () from /usr/lib/libglib-2.0.so.0
#13 0xb7631f2b in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#14 0xb7becdd0 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x08084c29 in trg_libunique_init (args=<optimized out>, argv=<optimized 
out>, 
    argc=<optimized out>, client=<optimized out>) at main.c:137
#16 main (argc=1, argv=0xbffff534) at main.c:290
(gdb) 

Please advise on any further information needed. Really like to help out with 
this excellent application!

Original comment by weba...@gmail.com on 1 Sep 2012 at 8:37

GoogleCodeExporter commented 9 years ago
That particular line is where lots of members from the JSON object are copied 
into the GTK model, so it could be any one of them. 

I've put the debug statements (one member per statement) back there. If you 
update, ./configure with --enable-debug, rebuild, and collect the backtrace 
again I hope this will be more specific.

Thanks.

Original comment by a...@eth0.org.uk on 1 Sep 2012 at 9:55

GoogleCodeExporter commented 9 years ago
New traceback:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0xb67cfb40 (LWP 24170)]
[New Thread 0xb5dceb40 (LWP 24171)]
[New Thread 0xb55cdb40 (LWP 24172)]
[New Thread 0xb4dccb40 (LWP 24173)]

Program received signal SIGSEGV, Segmentation fault.
0xb7424712 in __strlen_sse2_bsf () from /usr/lib/libc.so.6
#0  0xb7424712 in __strlen_sse2_bsf () from /usr/lib/libc.so.6
#1  0xb764e2de in g_strdup () from /usr/lib/libglib-2.0.so.0
#2  0xb771b070 in ?? () from /usr/lib/libgobject-2.0.so.0
#3  0xb7be9485 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#4  0xb7bea56c in gtk_list_store_set_valist () from /usr/lib/libgtk-x11-2.0.so.0
#5  0xb7bea5df in gtk_list_store_set () from /usr/lib/libgtk-x11-2.0.so.0
#6  0x080732f8 in update_torrent_iter (model=model@entry=0x81000f8, 
tc=tc@entry=0x80f7050, rpcv=14, 
    serial=1, iter=iter@entry=0xbffff150, t=t@entry=0x8174f40, stats=stats@entry=0x8100140, 
    whatsChanged=whatsChanged@entry=0xbffff144) at trg-torrent-model.c:552
#7  0x0807391f in trg_torrent_model_update (model=0x81000f8, 
tc=tc@entry=0x80f7050, response=
    0x8174f70, mode=mode@entry=0) at trg-torrent-model.c:777
#8  0x08080f97 in on_torrent_get (data=data@entry=0x82cfe18, mode=mode@entry=0)
    at trg-main-window.c:1288
#9  0x080823a6 in on_torrent_get_first (data=0x82cfe18) at 
trg-main-window.c:1328
#10 0xb762f210 in ?? () from /usr/lib/libglib-2.0.so.0
#11 0xb7631733 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#12 0xb7631ad0 in ?? () from /usr/lib/libglib-2.0.so.0
#13 0xb7631f2b in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#14 0xb7becdd0 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x08084a29 in trg_libunique_init (args=<optimized out>, argv=<optimized 
out>, 
    argc=<optimized out>, client=<optimized out>) at main.c:137
#16 main (argc=1, argv=0xbffff4a4) at main.c:290

With --enable-debug as you said.

Original comment by weba...@gmail.com on 1 Sep 2012 at 12:23

GoogleCodeExporter commented 9 years ago
Should be fixed now. I think it was a mismatch between an unsigned int and a 
64bit signed int in one of those new fields I added.

Unfortunately these bugs don't cause crashes for me. Seems to cause crashes on 
32bit more, and some other distros (maybe depends on compile flags).

Original comment by a...@eth0.org.uk on 1 Sep 2012 at 5:28

GoogleCodeExporter commented 9 years ago
Can confirm it is fixed! Yay! Nice work , thanks you. Looks nice too!

Original comment by weba...@gmail.com on 1 Sep 2012 at 6:54