• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] rtorrent: Segmentation Fault kurz nach Start d. DLs

gameboy

Hacker
Hallo zusammen,

damit man auch remote einen BitTorrent-Download starten kann, habe ich mir kürzlich mal rtorrent installiert. Auf der Seite werden entsprechende RPMs für mein System (Suse 10.0) angeboten (libtorrent-0.9.0-1.guru.suse100.i686.rpm und RPM rtorrent-0.5.0-1.guru.suse100.i686.rpm), welche ich nach dem Download über 'apt install ./*.rpm' installiert habe.

Das Problem: rtorrent steigt jedesmal kurz nach dem Start eines Torrents mit einem Segmentation Fault aus. Der Ablauf, z.B. für den Download-Versuch von openSUSE 10.2, ist folgender:

1) wget http://download.opensuse.org/distribution/10.2/iso/torrent/openSUSE-10.2-GM-DVD-i386.torrent

2) rtorrent in der Konsole starten

3) Backspace, Dateiname "openSUSE-10.2-GM-DVD-i386.torrent" eingeben <ENTER>

4) nach ca. 30 Sekunden erscheint dann folgende Fehlermeldung:

Code:
Caught Segmentation fault, dumping stack:
0 rtorrent [0x8057b94]
1 rtorrent [0x80621bf]
2 [0xffffe420]
3 /usr/lib/libtorrent.so.7(_ZN7torrent11RequestList9has_indexEj+0x21) [0x400f3981]
4 /usr/lib/libtorrent.so.7(_ZN7torrent19PeerConnectionLeech22receive_finished_chunkEi+0x56) [0x400eeb06]
5 /usr/lib/libtorrent.so.7(_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPPN7torrent18PeerConnectionBaseESt6vectorIS4
_SaIS4_EEEESt9binder2ndISt10mem_fun1_tIvS3_iEEET0_T_SF_SE_+0x6e) [0x400cc8ae]
6 /usr/lib/libtorrent.so.7(_ZN7torrent14ConnectionList19send_finished_chunkEj+0x5a) [0x400cbf7a]
7 /usr/lib/libtorrent.so.7(_ZN7torrent15DownloadWrapper17receive_hash_doneENS_11ChunkHandleESs+0x3bf) [0x400df3df]
8 /usr/lib/libtorrent.so.7(_ZN7torrent9HashQueue5checkEb+0x161) [0x400c0fd1]
9 /usr/lib/libtorrent.so.7(_ZN7torrent9HashQueue4workEv+0x42) [0x400c11b2]
10 /usr/lib/libtorrent.so.7(_ZN3rak9mem_fn0_tIN7torrent9HashQueueEvEclEv+0x3e) [0x400c130e]
11 /usr/lib/libtorrent.so.7(_ZN7torrent7performEv+0xfd) [0x400b48ad]
12 rtorrent [0x808a8fe]
13 rtorrent [0x80590e4]
14 /lib/tls/libc.so.6(__libc_start_main+0xd0) [0x403b8ea0]
15 rtorrent(_ZN7torrent18set_max_open_filesEj+0xa9) [0x8050f71]
Das Problem liegt offenbar nicht an diesem speziellen Torrent, denn beim Versuch, Kubuntu 6.10 herunterzuladen, kommt es ebenfalls zu einem Segfault. Da ich rtorrent vor meinen Versuchen dieser Tage noch nie verwendet habe, bin ich mir nun nicht sicher, wo das Problem liegt. An einen grundsätzlichen Programmfehler glaube ich nicht unbedingt, denn das zum Download angebotene RPM ist schon einige Monate alt.

Daher folgende Fragen:
- Verwendet jemand hier aus dem LC rtorrent unter Suse 10.0?
- Wenn ja: Gibt es ebenfalls Probleme mit Segfaults?
- Kann es ggf. sein, daß zusätzlich noch irgendwas installiert werden muß (obwohl apt alle Abhängigkeiten erfüllt sieht)?
- Gibt es ggf. eine andere Version (anderes Package), welche zuverlässig funktioniert?
- Wenn gar nichts hilft: Gibt es Alternativen zu rtorrent, d.h. andere BT-Clients ohne GUI?

Danke im voraus für Eure Unterstützung.

Viele Grüße,
gameboy.
 
OP
G

gameboy

Hacker
Sorry, wenn ich diesen Beitrag nochmal nach oben schiebe, aber gibt es wirklich keine Alternativen zu rtorrent, d.h. andere BT-Clients ohne GUI, die zuverlässig unter Suse 10.0 funktionieren?

[BTQueue hatte ich diese Tage mal mit Google ausgegraben, aber das ließ sich nach der Installation mit apt noch nicht einmal ohne Fehlermeldung starten.]
 

mca

Hacker
Moin gameboy,
ich benutze seit langer Zeit rtorrent und bin sehr zufrieden damit. Ich kenne das Projekt halbwegs und kann Dir deshalb sagen, dass ab und zu Releases rauskommen, die auf meinem Suse 10.1 nicht richtig oder gar nicht laufen. Meistens gibts dann Bugfixes...
Die aktuelle Version 0.7.1 läuft aber richtig gut. Du solltest die mal selbst kompilieren, das lohnt sich, versprochen :wink:
Gruss mca
 
OP
G

gameboy

Hacker
mca schrieb:
Die aktuelle Version 0.7.1 läuft aber richtig gut. Du solltest die mal selbst kompilieren, das lohnt sich, versprochen :wink:
Hm, vom Selbst-Kompilieren bin ich ehrlich gesagt nicht so ein großer Freund. Das bringt nach meiner Erfahrung die Paketverwaltung der Distribution des öfteren mal durcheinander. Insofern wäre es mir deutlich lieber, wenn für die 0.7.1 entsprechende RPMs für rTorrent und libTorrent aufzutreiben wären...

Viele Grüße,
gameboy.
 

Gimpel

Guru
gameboy schrieb:
mca schrieb:
Die aktuelle Version 0.7.1 läuft aber richtig gut. Du solltest die mal selbst kompilieren, das lohnt sich, versprochen :wink:
Hm, vom Selbst-Kompilieren bin ich ehrlich gesagt nicht so ein großer Freund. Das bringt nach meiner Erfahrung die Paketverwaltung der Distribution des öfteren mal durcheinander. Insofern wäre es mir deutlich lieber, wenn für die 0.7.1 entsprechende RPMs für rTorrent und libTorrent aufzutreiben wären...

Viele Grüße,
gameboy.
Du kannst ja auch pakete selbst bauen. checkinstall ist da für den Hausgebraucht recht fein.
 
OP
G

gameboy

Hacker
Gimpel schrieb:
Du kannst ja auch pakete selbst bauen. checkinstall ist da für den Hausgebraucht recht fein.
Hallo Gimpel,

danke für Deine Antwort. Meine Erfahrungen mit checkinstall sind leider nicht die besten: Ich habe bisher zweimal versucht, es einzusetzen. In beiden Fällen gab es mit checkinstall ominöse Fehlermeldungen wie "File not found", während die direkte Installation ohne checkinstall fehlerfrei durchgelaufen ist.

Da ich aber insgesamt eher ein vorsichtiger Mensch bin, traue ich mir das Selbst-Kompilieren von Anwendungen i.d.R. nur in einer sicheren Umgebung (z.B. innerhalb einer Suse-Test-Installation unter VMware) zu. Das System, mit dem ich tagtäglich arbeite, möchte ich äußerst ungern durch solche "Experimente" in Gefahr bringen...

Auf jeden Fall werde ich Deinen Vorschlag mit checkinstall (unter VMware) mal ausprobieren. Vielleicht klappt es ja diesmal. Und wenn nicht, besteht immer noch die Möglichkeit, daß ich dabei etwas lerne. :)

Viele Grüße,
gameboy.
 
OP
G

gameboy

Hacker
Hi again,

hier nun das Ergebnis meiner Bemühungen mit checkinstall...

Vorgegangen bin ich wie folgt:
  • Vorbereitung: apt-get install libsigc++2 libsigc++2-devel
  • RPM für libtorrent erstellen & installieren:
    - ./configure
    - make install
    - checkinstall
    - rpm -i /usr/src/packages/RPMS/i386/libtorrent-0.11.1-1.i386.rpm

    --> das ganze verlief ohne Fehlermeldung
  • RPM für rtorrent erstellen & installieren:
    - ./configure
    - make install
    - checkinstall
    - rpm -i /usr/src/packages/RPMS/i386/rtorrent-0.7.1-1.i386.rpm

    --> das ganze verlief ohne Fehlermeldung
  • Ergebnis: 'apt policy libtorrent rtorrent' ergibt nun:

    libtorrent:
    Installed: 0.11.1-1
    Candidate: 0.11.1-1
    Version Table:
    *** 0.11.1-1 0
    100 RPM Database

    rtorrent:
    Installed: 0.7.1-1
    Candidate: 0.7.1-1
    Version Table:
    *** 0.7.1-1 0
    100 RPM Database
Nach allem, was ich sagen kann, ist sowohl das Kompilieren als auch das erzeugen und Installieren der RPMs reibungslos verlaufen. Leider läßt sich rtorrent trotzdem nicht starten. Beim Aufruf wird folgende Fehlermeldung ausgegeben:

Code:
~> rtorrent
rtorrent: error while loading shared libraries: libtorrent.so.10: cannot open shared object file: No such file or directory
Dabei wundert mich, daß ich die entsprechende Datei/Bibliothek ohne weiteres über eine Suche im Filesystem finden kann:

Code:
# find / -name "libtorrent.so.10"
/usr/local/lib/libtorrent.so.10
Hat jemand noch einen Tip, was hier zu tun ist, um das ganze doch noch ans Laufen zu bekommen?
 

Gimpel

Guru
entweder du baust beides nochmal mit ./configure --prefix=/usr
aktuell sind ohnehin eh libtorrent-0.11.2 und rtorrent-0.7.2

oder du fügst /usr/local/lib zur /etc/ld.so.conf hinzu, gefolgt von einem ldconfig
 
OP
G

gameboy

Hacker
Hallo Gimpel,

habe mich für die Variante mit ./configure --prefix=/usr entschieden und es hat funktioniert. Jetzt habe ich tatsächlich ein funktionierendes rtorrent auf meinem System! (daran hatte ich zwischenzeitlich schon nicht mehr geglaubt...)

Danke für Deine Unterstützung!

Viele Grüße,
gameboy.
 

lurchi2k1

Newbie
Danke gameboy. Bin gerade per google über den Thread gestolpert. Die offiziellen rpms, die ich aus den repositories gefunden habe sind ja 100 Jahre alt. Spezieller Dank für den Tip mit checkinstall ... kannte ich vorher nich. :)
 
Oben