rtorrent
rtorrent copied to clipboard
rtorrent crashes on starting
usr1@linux:~$ rtorrent
(10:21:35) Using 'epoll' based polling.
(10:21:35) Using 'epoll' based polling.
(10:21:35) Using 'epoll' based polling.
(10:21:35) Closed XMLRPC log.
Caught Segmentation fault, dumping stack:B] [Port: 51160] [U 0/150] [D 0/150] [
rtorrent(+0x140a9) [0x50d0a9]
linux-gate.so.1(__kernel_sigreturn+0) [0xb7efcd14]
/lib/i386-linux-gnu/libc.so.6(+0x143e95) [0xb7a4ee95]
/usr/local/lib/libxmlrpc_util.so.4(+0x6000) [0xb7cb2000]
Aborted (core dumped)
rtorrent 0.9.7-2 libtorrent 0.13.7-1 curl 7.58.0 (i686-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1c zlib/1.2.11 libidn2/2.2.0 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 NAME="Ubuntu" VERSION="18.04.3 LTS (Bionic Beaver)"
Thanks!
You need to run it under gdb and post a better backtrace.
I'm not sure if this is what you meant, but here It is.
usr1@linux:~$ gdb rtorrent
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
Copyright (C) 2018 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 "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rtorrent...done.
(gdb) handle SIGPIPE ignore
Signal Stop Print Pass to program Description
SIGPIPE Yes Yes No Broken pipe
(gdb) handle SIGPIPE nostop
Signal Stop Print Pass to program Description
SIGPIPE No Yes No Broken pipe
(gdb) handle SIGPIPE noprint
Signal Stop Print Pass to program Description
SIGPIPE No No No Broken pipe
(gdb) handle SIGUSR1 nostop
Signal Stop Print Pass to program Description
SIGUSR1 No Yes Yes User defined signal 1
(gdb) handle SIGUSR1 ignore
Signal Stop Print Pass to program Description
SIGUSR1 No Yes No User defined signal 1
(gdb) handle SIGUSR1 noprint
Signal Stop Print Pass to program Description
SIGUSR1 No No No User defined signal 1
(gdb) run
Starting program: /usr/local/bin/rtorrent
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb6711b40 (LWP 8296)]
(10:32:00) Using 'epoll' based polling.
(10:32:00) Using 'epoll' based polling.
(10:32:00) Using 'epoll' based polling.
(10:32:00) Closed XMLRPC log.
[Throttle off/off KB] [Rate 0.0/ 0.0 KB] [Port: 51121] [U 0/150] [D 0/150] [[New Thread 0xb5cffb40 (LWP 8299)]
Thread 3 "worker_rtorrent" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb5cffb40 (LWP 8299)]
__memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:1982
1982 ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S: No such file or directory.
(gdb)
You need to run 'bt' to get the backtrace.
Like this? I'm sorry for not doing it correctly, I'm a bit of a newb. Thank you so much for taking the time.
usr1@linux:~$ gdb rtorrent
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
Copyright (C) 2018 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 "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rtorrent...done.
(gdb) bt
No stack.
(gdb) quit
You need to run it after the crash.
Thanks!
usr1@linux:~$ gdb rtorrent
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
Copyright (C) 2018 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 "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rtorrent...done.
(gdb)
(gdb)
(gdb)
(gdb) handle SIGPIPE ignore
Signal Stop Print Pass to program Description
SIGPIPE Yes Yes No Broken pipe
(gdb) handle SIGPIPE nostop
Signal Stop Print Pass to program Description
SIGPIPE No Yes No Broken pipe
(gdb) handle SIGPIPE noprint
Signal Stop Print Pass to program Description
SIGPIPE No No No Broken pipe
(gdb) handle SIGUSR1 nostop
Signal Stop Print Pass to program Description
SIGUSR1 No Yes Yes User defined signal 1
(gdb) handle SIGUSR1 ignore
Signal Stop Print Pass to program Description
SIGUSR1 No Yes No User defined signal 1
(gdb) handle SIGUSR1 noprint
Signal Stop Print Pass to program Description
SIGUSR1 No No No User defined signal 1
(gdb) run
Starting program: /usr/local/bin/rtorrent
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb6711b40 (LWP 8296)]
(13:14:49) Using 'epoll' based polling.
(13:14:49) Using 'epoll' based polling.
(13:14:49) Using 'epoll' based polling.
(13:14:49) Closed XMLRPC log.
[Throttle off/off KB] [Rate 0.0/ 0.0 KB] [Port: 51049] [U 0/150] [D 0/150] [[New Thread 0xb5cffb40 (LWP 15189)]
Thread 3 "worker_rtorrent" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb5cffb40 (LWP 15189)]
__memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:1982
1982 ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S: No such file or directory.
(gdb) bt
#0 __memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:1982
#1 0xb7d8c000 in ?? () from /usr/local/lib/libxmlrpc_util.so.4
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)
Looks like it might be xmlrpc, disable xmlrpc in your rtorrent.rc and see if it works.
No xmlrpc in my rtorrent.rc file.
Then I'd recommend trying to build for yourself libtorrent and rtorrent from source.
I grabbed 0.13.8/0.9.8 from the website (https://github.com/rakshasa/rtorrent/releases) and compiled everything from scratch. Also did xmlrpc (sudo svn checkout http://svn.code.sf.net/p/xmlrpc-c/code/stable xmlrpc-c) just to be on the safe side.
usr1@linux:~$ gdb rtorrent
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
Copyright (C) 2018 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 "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rtorrent...done.
(gdb) handle SIGPIPE ignore
Signal Stop Print Pass to program Description
SIGPIPE Yes Yes No Broken pipe
(gdb) handle SIGPIPE nostop
Signal Stop Print Pass to program Description
SIGPIPE No Yes No Broken pipe
(gdb) handle SIGPIPE noprint
Signal Stop Print Pass to program Description
SIGPIPE No No No Broken pipe
(gdb) handle SIGUSR1 nostop
Signal Stop Print Pass to program Description
SIGUSR1 No Yes Yes User defined signal 1
(gdb) handle SIGUSR1 ignore
Signal Stop Print Pass to program Description
SIGUSR1 No Yes No User defined signal 1
(gdb) handle SIGUSR1 noprint
Signal Stop Print Pass to program Description
SIGUSR1 No No No User defined signal 1
(gdb) run
Starting program: /usr/local/bin/rtorrent
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb6701b40 (LWP 3240)]
(19:27:54) Using 'epoll' based polling.
(19:27:54) Using 'epoll' based polling.
(19:27:54) Using 'epoll' based polling.
[Throttle off/off KB] [Rate 0.0/ 0.0 KB] [Port: 51073] [U 0/150] [D 0/150] [[New Thread 0xb5dffb40 (LWP 3243)]
Thread 3 "rtorrent scgi" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb5dffb40 (LWP 3243)]
__memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:1982
1982 ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S: No such file or directory.
(gdb) bt
#0 __memcpy_ssse3 () at ../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:1982
#1 0xb7d7c000 in ?? () from /usr/local/lib/libxmlrpc_util.so.4
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)
Also, my .rtorrent.rc file:
# This is an example resource file for rTorrent. Copy to ~/.rtorrent.rc
# and enable/modify the options as needed. Remember to uncomment the
# options you wish to enable.
# Maximum and minimum number of peers to connect to per torrent.
min_peers = 45
max_peers = 49
# Maximum number of simultanious uploads per torrent.
max_uploads = 5
# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 750
upload_rate = 5
#this is new
max_downloads_global = 5
max_uploads_global = 5
# Default directory to save the downloaded torrents.
directory = /home/usr1/Public/incomplete
# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/usr1/session
# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,10,60,load_start=/home/usr1/Dropbox/tali/torrentDownloads/*.torrent
#schedule = watch_directory_1,20,60,load_start=/home/usr1/Dropbox/tali/torrentDownloads/shows/*.torrent
#schedule = watch_directory_2,30,60,load_start=/home/usr1/Dropbox/tali/torrentDownloads/movies/*.torrent
#schedule = watch_directory_1,40,60,load_start=/home/usr1/Dropbox/tali/torrentDownloads/shows/unsorted/*.torrent
#schedule = untied_directory,5,60,stop_untied=
#schedule = untide_directory,7,60,remove_untied=
# Close torrents when diskspace is low.
schedule = low_diskspace,15,60,close_low_diskspace=100M
# Port range to use for listening.
#port_range = 6890-6999
scgi_port = 127.0.0.1:5000
# Start opening ports at a random position within the port range.
#port_random = no
# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no
# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes
# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
encryption = allow_incoming,enable_retry,prefer_plaintext
# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
# dht = auto
# UDP port to use for DHT.
#
# dht_port = 6881
#
# Do not modify the following parameters unless you know what you're doing.
#
# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10
# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100
# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10
#move completed
#system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/Public/"
#system.method.set_key = event.download.finished,rm_torrent,"execute=sleep,600;rm,$d.get_tied_to_file="
#remove incomlete
#system.method.set_key = event.download.erased,rm_incomplete,"execute=rm,-r,$d.get_base_path="
#system.method.set_key = event.download.erased,rm_torrent_erased,"execute=rm,$d.get_tied_to_file="
# Delete .torrent
#system.method.set_key = event.download.inserted_new,del_tor,"execute={rm,-rf,--,$d.get_loaded_file=}"
system.method.set_key = event.download.erased, link1, "execute=/home/usr1/bin/dealWithTorrent.py,-e,$d.get_base_path=,$d.get_tied_to_file=,$d.get_custom1="
system.method.set_key = event.download.finished, link2, "execute=/home/usr1/bin/dealWithTorrent.py,-f,$d.get_base_path=,$d.get_tied_to_file=,$d.get_custom1="
#system.method.set_key = event.download.erased, link3, "execute=/home/usr1/bin/removeCompleted.sh"
#system.method.set_key = event.download.finished, link4, "execute=/home/usr1/bin/removeCompleted.sh"
"execute=/home/usr1/bin/torrentcomplete.py,$d.get_base_path=,$d.get_tied_to_file="
#rtgui
scgi_port = localhost:5000
encoding_list = UTF-8
# Enable the default ratio group.
#ratio.enable=
#system.method.set_key = event.download.inserted_new, !_force_create, "d.close= ;f.multicall=,f.set_create_queued=,f.set_resize_queued=; d.check_hash="
execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php torrentUser &}
#$label = rawurldecode($d.get_custom1=)
Once again, thanks for your patience with me.
scgi_port = 127.0.0.1:5000
Comment out this and try again, it it works then add logging for rpc calls (see wiki) and provide the output.
I commented both of these out:
#scgi_port = 127.0.0.1:5000
#scgi_port = localhost:5000
still doesn't work.
Use a proven xmlrpc version, like this one
export XMLRPC_REV=2954 # Release 1.49.02 2017-09
Newer is not always "better".
Also, for more diagnostics, try this binary build:
https://bintray.com/pyroscope/rtorrent-ps/download_file?file_path=rtorrent-ps_0.9.6-PS-1.1-25-g1b53ac9%7Ebionic_amd64.deb
thanks for dropping in pyroscope.
Couldn't install the version you gave because I'm running x86.
package architecture (amd64) does not match system (i386)
I tried downgrading xmlrpc, but couldn't figure it out. Could you tell me how to do it?
Figured it out. For future generations:
sudo svn checkout http://svn.code.sf.net/p/xmlrpc-c/code/stable@2954 xmlrpc-c
cd xmlrpc-c
sudo ./configure --disable-cplusplus
sudo make
sudo make install
looks like rtorrent is up and running.
A couple of issues now that I got it running. (and thanks again for all the help).
I get this when I run rutorrent:
[26.09.2019 08:43:09] WebUI started.
[26.09.2019 08:43:10] ruTorrent cannot determine the UID of rTorrent user. Some functionality will be unavailable.
[26.09.2019 08:43:10] rutracker_check: Plugin will not work. Webserver user must have execute access to the rtorrent session directory ().
[26.09.2019 08:43:11] Bad response from server: (500 [error,list]) Warning: XMLRPC call is failed.
It's odd because when I add a torrent it shows up in rtorrent, but nothing is displayed on rutorrent.
#2. My post download script isn't running. If these two aren't commented out:
system.method.set_key = event.download.erased, link1, "execute=/home/usr1/bin/dealWithTorrent.py,-e,$d.get_base_path=,$d.get_tied_to_file=,$d.get_custom1="
system.method.set_key = event.download.finished, link2, "execute=/home/usr1/bin/dealWithTorrent.py,-f,$d.get_base_path=,$d.get_tied_to_file=,$d.get_custom1="
I get this: rtorrent: Error in option file: ~/.rtorrent.rc:128: Command "system.method.set_key" does not exist. #3. If I restart the server, the incomplete torrents don't start up again. #4. I get this error message: ( 8:58:45) Scheduled command failed: watch_directory: Command "load_start" does not exist.
should I open a new tickets?
Figured out 2 and 4. 1 and 3 don't work.
read the wiki… migration / new syntax.
According https://github.com/rakshasa/rtorrent/search?q=load_start
load_start
-> load.start