Page 1 of 1

Systemd deluged.service (code=killed, status=11/SEGV)

Posted: Thu Nov 07, 2019 7:47 am
by GostLy
Hi, so recently I upgraded my deluge 1.3 to 2.0.3 on a headless raspbian server. I built 2.0.3 from source but before doing that I manually removed all the deluge files I could "find". I recreated the systemd services from the wiki but when I tried to start them they wouldn't run. I would get this result from "systemctl status deluged.service"

Code: Select all

deluged.service - Deluge Bittorrent Client Daemon
   Loaded: loaded (/etc/systemd/system/deluged.service; disabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/deluged.service.d
           └─user.conf
   Active: failed (Result: signal) since Thu 2019-11-07 06:49:27 GMT; 3s ago
     Docs: man:deluged
  Process: 25959 ExecStart=/usr/bin/python /usr/bin/deluged -d & (code=killed, signal=SEGV)
 Main PID: 25959 (code=killed, signal=SEGV)

Nov 07 06:49:26 raspberrypi systemd[1]: Started Deluge Bittorrent Client Daemon.
Nov 07 06:49:27 raspberrypi systemd[1]: deluged.service: Main process exited, code=killed, status=11/SEGV
Nov 07 06:49:27 raspberrypi systemd[1]: deluged.service: Failed with result 'signal'.
So I tried to just run "deluged -d" from a terminal and it ran without problems, I even connected to it with the thin client.

Anyways, maybe someone can shine some light on this for me, if you need more information tell me what I need to do because I googled to get the coredump so not sure if that's enough information or not. Also, I should mention that my other systemd services are running fine.

/etc/systemd/system/deluged.service

Code: Select all

[Unit]
Description=Deluge Bittorrent Client Daemon
Documentation=man:deluged
After=network-online.target

[Service]
Type=simple
UMask=000

ExecStart=/usr/bin/deluged -d

Restart=on-failure
RestartSec=5

# Time to wait before forcefully stopped.
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target
"sudo coredumpctl debug 31237"

Code: Select all

 
 	   PID: 31237 (deluged)
           UID: 1001 (gostly)
           GID: 1001 (gostly)
        Signal: 11 (SEGV)
     Timestamp: Thu 2019-11-07 07:02:38 GMT (4min 13s ago)
  Command Line: /usr/bin/python /usr/bin/deluged -d
    Executable: /usr/bin/python3.7
 Control Group: /system.slice/deluged.service
          Unit: deluged.service
         Slice: system.slice
       Boot ID: 82d852d565c74f3d890a0b9f9e238589
    Machine ID: xxxxx
      Hostname: raspberrypi
       Storage: /var/lib/systemd/coredump/core.deluged.1001.82d852d565c74f3d890a0b9f9e238589.31237.1573110158000000.lz4
       Message: Process 31237 (deluged) of user 1001 dumped core.
                
                Stack trace of thread 31237:
                #0  0x00000000000645d8 _Py_ReleaseInternedUnicodeStrings (python3.7)
                #1  0x00000000b56f8190 ~dht_mutable_item (libtorrent-rasterbar.so.10)
                #2  0x00000000bece0e04 n/a (n/a)

GNU gdb (Raspbian 8.2.1-2) 8.2.1
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 "arm-linux-gnueabihf".
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 /usr/bin/python3.7...Reading symbols from /usr/lib/debug/.build-id/43/bae4a9637f34096c885fc1179541d11bbedf2d.debug...done.
done.

warning: core file may not match specified executable file.
[New LWP 31237]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Core was generated by `/usr/bin/python /usr/bin/deluged -d'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000645d8 in _Py_ReleaseInternedUnicodeStrings () at ../Objects/unicodeobject.c:15359
15359	../Objects/unicodeobject.c: No such file or directory.
(gdb) thread apply all bt

Thread 1 (Thread 0xb6fb0ad0 (LWP 31237)):
#0  0x000645d8 in _Py_ReleaseInternedUnicodeStrings () at ../Objects/unicodeobject.c:15359
#1  0xb56f8190 in libtorrent::dht::(anonymous namespace)::dht_mutable_item::~dht_mutable_item (this=0xb6ddd000, __in_chrg=<optimized out>)
    at /usr/include/c++/8/bits/unique_ptr.h:598
#2  0xbece0e04 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Re: Systemd deluged.service (code=killed, status=11/SEGV)

Posted: Fri Nov 22, 2019 2:30 am
by GostLy
So I thought that I would update this post in case anyone else runs into a similar problem because I've found a workaround. However I still haven't fixed this, I even moved from Raspbian to Ubuntu Server and the crash followed me, that's kind of how I was able to figure out a way around it. Anyways, I figured out not to run deluged service as root (or sudo) but after I reboot my server it crashes with a segmentation fault.

So what I've been doing is renaming the "~/.config/deluge/session.state" file so that deluged is forced to create a new one and that makes it so that I can run "systemctl start deluged" and it works fine. If anyone could shine some light on why I have to do that and suggest something a bit more permanent to solve my problem, that would be great.