Bug 525419 - transmission keep crash
Summary: transmission keep crash
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: transmission
Version: 11
Hardware: i686
OS: Linux
low
high
Target Milestone: ---
Assignee: Rahul Sundaram
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-09-24 10:36 UTC by biAji
Modified: 2013-03-13 05:45 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-01-11 22:15:50 UTC


Attachments (Terms of Use)
dump file generate by transmission (340.76 KB, text/plain)
2009-09-24 10:36 UTC, biAji
no flags Details

Description biAji 2009-09-24 10:36:16 UTC
Created attachment 362470 [details]
dump file generate by transmission

Description of problem:
After a crash when I close the app, I can not start it again.  It keep crash everytime I start it.


Version-Release number of selected component (if applicable):
Transmission 1.72 (8714)


How reproducible:
Not sure. 

Steps to Reproduce:
1.
2.
3.
  
Actual results:
Can not start the app. And there are no error report if I start it in terminal. 


Expected results:
Act as normal


Additional info:

Comment 1 Rahul Sundaram 2009-09-24 10:44:01 UTC
Transmission stores its configuration information in ~/.config/transmission. Can you can move the folder and see if it fixes the problem?

Comment 2 biAji 2009-09-25 04:07:02 UTC
Yes, It's the only way to make it work again. That's weird. @@

Comment 3 Charles Kerr 2009-09-25 12:08:31 UTC
Two questions:

1. Could you please update to the latest version, 1.75, and see if the crash persists?

2. Could you please attach a gdb backtrace to this ticket?  If Fedora doesn't generate these automatically, the process is relatively simple:

- make sure gdb and transmission-debuginfo is installed from yum
- from the command line: $ gdb transmission
- (gdb) handle SIGPIPE nostop noprint nopass
- (gdb) r
- ... wait for transmission to crash...
- (gdb) thread apply all bt
  ^ and the output of that command is what you'll attach to this ticket

Thanks!

Comment 4 biAji 2009-09-27 01:11:05 UTC
I tried to install transmission-1.75-1.fc12 RPM for i686, but it seemed it depend on other packages, which I can not find in rawhide repo.  = =; 

And the gdb output as following:



$ gdb transmission
GNU gdb (GDB) Fedora (6.8.50.20090302-38.fc11)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
(gdb) handle SIGPIPE nostop noprint nopass
Signal        Stop	Print	Pass to program	Description
SIGPIPE       No	No	No		Broken pipe
(gdb) r
Starting program: /usr/bin/transmission 
warning: .dynamic section for "/usr/lib/libXfixes.so.3" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libXrandr.so.2" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libXcursor.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libXdamage.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libpixman-1.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[Thread debugging using libthread_db enabled]
Missing separate debuginfo for /usr/lib/libtdb.so.1
Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/85/b6149a8377a357541e89471eb7ee92474cc8de.debug
warning: .dynamic section for "/usr/lib/libstdc++.so.6" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/lib/libgcc_s.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[New Thread 0xb7b1fb70 (LWP 3202)]
[New Thread 0xb6fffb70 (LWP 3203)]
warning: .dynamic section for "/usr/lib/libgvfscommon.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[New Thread 0xb456ab70 (LWP 3204)]

Program received signal SIGSEGV, Segmentation fault.
strlen () at ../sysdeps/i386/i486/strlen.S:69
69	../sysdeps/i386/i486/strlen.S: 没有那个文件或目录.
	in ../sysdeps/i386/i486/strlen.S
Current language:  auto; currently asm

Comment 5 Charles Kerr 2009-09-27 04:42:46 UTC
> strlen () at ../sysdeps/i386/i486/strlen.S:69

Well, this is where it's crashing... but where is the output from "thread apply all bt"? :)

Comment 6 biAji 2009-09-28 02:28:58 UTC
Sorry dude...It's here... hope it useful:


(gdb) thread apply all bt

Thread 3 (Thread 0xb4f97b70 (LWP 3544)):
#0  0x007c4422 in __kernel_vsyscall ()
#1  0x00bf8fcb in read () from /lib/libpthread.so.0
#2  0x080a8abd in read (__buf=<value optimized out>, __nbytes=<value optimized out>, 
    __fd=<value optimized out>) at /usr/include/bits/unistd.h:45
#3  verifyTorrent (__buf=<value optimized out>, __nbytes=<value optimized out>, 
    __fd=<value optimized out>) at verify.c:92
#4  verifyThreadFunc (__buf=<value optimized out>, __nbytes=<value optimized out>, 
    __fd=<value optimized out>) at verify.c:214
#5  0x00bf1935 in start_thread (arg=0xb4f97b70) at pthread_create.c:297
#6  0x00b5094e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xb7b1fb70 (LWP 3543)):
#0  0x007c4422 in __kernel_vsyscall ()
#1  0x00b46396 in *__GI___poll (fds=0xbdeff4, nfds=1, timeout=2000)
    at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x080cc0fd in ReceiveData (socket=25, 
    data=0xb7b1eaac "M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nST: urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\nMAN: \"ssdp:discover\"\r\nMX: 3\r\n\r\n", length=1536, 
    timeout=2000) at miniupnpc.c:592
#3  0x080ccc7b in upnpDiscover (delay=2000, multicastif=0x0, minissdpdsock=0x0, sameport=0)
    at miniupnpc.c:453
#4  0x080c42aa in tr_upnpPulse (handle=0xb705f378, port=51413, isEnabled=1, doPortCheck=0)
    at upnp.c:92
#5  0x080bf9cf in natPulse (s=0xb7005c98, doPortCheck=<value optimized out>)
    at port-forwarding.c:82
#6  0x080bfc64 in onTimer (fd=-1, what=1, vshared=0xb7005c98) at port-forwarding.c:101
#7  0x03679220 in event_process_active (base=<value optimized out>) at event.c:370
#8  event_base_loop (base=<value optimized out>) at event.c:519
---Type <return> to continue, or q <return> to quit---
#9  0x036793a9 in event_loop (flags=0) at event.c:446
#10 0x036793ce in event_dispatch () at event.c:384
#11 0x080a515d in libeventThreadFunc (veh=0x8165fb8) at trevent.c:239
#12 0x00bf1935 in start_thread (arg=0xb7b1fb70) at pthread_create.c:297
#13 0x00b5094e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb7fd8730 (LWP 3540)):
#0  strlen () at ../sysdeps/i386/i486/strlen.S:69
#1  0x080a6163 in tr_buildPath (first_element=0x82799f0 "/home/biaji/Download") at utils.c:669
#2  0x0809d817 in tr_torrentGetMTimes (tor=0x82d8580, setme_n=0xbfffef3c) at torrent.c:1922
#3  0x080c1a5f in loadProgress (tor=<value optimized out>, dict=<value optimized out>)
    at resume.c:404
#4  loadFromFile (tor=<value optimized out>, dict=<value optimized out>) at resume.c:633
#5  tr_torrentLoadResume (tor=<value optimized out>, dict=<value optimized out>) at resume.c:710
#6  0x0809fcba in torrentRealInit (ctor=<value optimized out>, tor=<value optimized out>)
    at torrent.c:614
#7  tr_torrentNew (ctor=<value optimized out>, tor=<value optimized out>) at torrent.c:722
#8  0x080974f1 in tr_sessionLoadTorrents (session=0x81654e8, ctor=0x826c4d8, setmeCount=0xbffff1dc)
    at session.c:1543
#9  0x08076c7a in tr_core_load (self=0x8124058, forcePaused=0) at tr-core.c:830
#10 0x0806be9a in appsetup (isIconified=<value optimized out>, forcepause=<value optimized out>, 
    cbdata=<value optimized out>, torrentFiles=<value optimized out>, wind=<value optimized out>)
    at main.c:520
#11 main (isIconified=<value optimized out>, forcepause=<value optimized out>, 
    cbdata=<value optimized out>, torrentFiles=<value optimized out>, wind=<value optimized out>)
    at main.c:462

Comment 7 Charles Kerr 2009-09-29 14:44:49 UTC
Thanks biAji.  I see now what's happening, but still can't figure out why... :/

How many files are in ~/.config/transmission/torrents/ ?  If it's a small number, would you be willing to tar them up and mail them to me privately at charles-at-transmissionbt.com?

Comment 8 Charles Kerr 2009-09-29 14:48:31 UTC
Some details regarding that last comment: what's happening is that it's loading torrents from ~/.config/transmission/torrents/ on startup, and it tries get the mtimes of each of the files owned by that torrent.  It's crashing when building a filename to stat(2) its mtime, because of an invalid pointer being passed into tr_buildPath().

biAji: alternative path if you want to keep your .torrents private: try running valgrind on Transission instead:

$ export G_SLICE=always-malloc
$ export G_DEBUG=gc-friendly
$ export GLIBCXX_FORCE_NEW=1
$ valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=64 --log-file=x-valgrind --show-reachable=yes ./transmission

Comment 9 biAji 2009-10-29 09:42:56 UTC
Sorry guys,  I am not often use this utilities and give up the certain torrent for a long time. Yes  the problem is torrent based, and I will dig out those torrents for test in a short time. And more, I can only delete the resume directory to correct the problem it caused.


Note You need to log in before you can comment on or make changes to this bug.