Ipfs: Ipfs 0.4.10 stürzt ab, wenn Dateien größer als 50 MB hinzugefügt werden

Erstellt am 13. Juli 2017  ·  9Kommentare  ·  Quelle: ipfs/ipfs

Betriebssystem: Arch Linux & MacOS

~ % ipfs version
ipfs version 0.4.10
~ % ipfs init
initializing IPFS node at /Users/user/.ipfs
generating 2048-bit RSA keypair...done
peer identity: Qme3fGyQWP4mf3J9Ln3EjofWyYhiGgVCZZ41jgVA9o78u7
to get started, enter:

    ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme

~ % ipfs daemon
Initializing daemon...
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.0.102/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

Versuchen wir, ein Video hinzuzufügen:

ipfs add raw_video.mkv
added Qmf6vier2j9rtG7hjA8Bf8ohzT5VYNmGfRntSc4zXsQyPL raw_video.mkv

Etwa 15-20 Sekunden später stürzt ipfs ab:
https://gist.github.com/Netherdrake/4da51b24da82fe25ae476cffeb09cc31

Dieses Problem tritt zeitweise auf - manchmal ist das Hinzufügen erfolgreich und ich kann ohne Probleme auf die Dateien auf localhost:8080/ipfs/HASH/raw_video.mkv zugreifen, aber meistens stürzt der Daemon ab.

Hilfreichster Kommentar

Okay, in diesem Fall wird eine Datei hinzugefügt, die dazu führt, dass das Subsystem des DHTs-Anbieters eine Verbindung zu viel zu vielen Peers herstellt. Wenn Sie das Flag --routing=none entfernen und ipfs add --local sollten die Dinge auch gut funktionieren.

Ich arbeite an einem Fix dafür, wir werden hoffentlich etwas in der nächsten Version haben.

Alle 9 Kommentare

Sie können umleiten durch ipfs daemon 2>stderr.log

Ich kann es auch nicht reproduzieren, ich habe etwa 10x60MiB-Dateien ausprobiert.

Es stellt sich heraus, dass ipfs beim Hinzufügen einer großen Datei abstürzt.

Zum Beispiel offizielle Ubuntu-ISO.

Unter MacOS stürzt es ab:

ipfs add ubuntu-16.04.2-desktop-amd64.iso
 488.00 MB / 1.45 GB [=============================>------------------------------------------------------------]  32.92% 20s17:54:27.509 ERROR commands/h: unexpected EOF client.go:247
Error: unexpected EOF

Unter Linux wird ein Fehler ausgegeben, aber der Daemon-Prozess scheint weiter zu laufen:

~/Downloads % ipfs add ubuntu-16.04.2-desktop-amd64.iso 
 32.00 MB / 1.45 GB [=>----------------------------------------------------------------------------]   2.16% 30s17:53:01.534 ERROR commands/h: open /home/user/.ipfs/blocks/SF/put-579906520: too many open files client.go:247
Error: open /home/user/.ipfs/blocks/SF/put-579906520: too many open files
% ipfs daemon
Initializing daemon...
Adjusting current ulimit to 2048...
Successfully raised file descriptor limit to 2048.
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/172.17.0.1/tcp/4001
Swarm listening on /ip4/172.18.0.1/tcp/4001
Swarm listening on /ip4/172.19.0.1/tcp/4001
Swarm listening on /ip4/172.20.0.1/tcp/4001
Swarm listening on /ip4/172.21.0.1/tcp/4001
Swarm listening on /ip4/172.22.0.1/tcp/4001
Swarm listening on /ip4/172.23.0.1/tcp/4001
Swarm listening on /ip4/172.24.0.1/tcp/4001
Swarm listening on /ip4/192.168.1.107/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
17:53:01.534 ERROR commands/h: err: open /home/user/.ipfs/blocks/SF/put-579906520: too many open files handler.go:285

Ich habe versucht, ein Downgrade auf frühere Versionen durchzuführen, und die einzige Version, die nicht abstürzt, ist 0.4.6 :

~/Downloads % ipfs add ubuntu-16.04.2-desktop-amd64.iso 
added QmTc9mzzoEChP2Wyc4uGWGkkifC99y8o4KmxwVyg18MP76 ubuntu-16.04.2-desktop-amd64.iso
~/Downloads % ipfs version
ipfs version 0.4.6
~/Downloads % pacman -Q go-ipfs
go-ipfs 0.4.6-1

Ich kann dies auch nicht unter macOS 10.12.5 und Ubuntu 16.04 mit ipfs 0.4.10 reproduzieren.

$ truncate -s 500M testfile
added QmV7q5aTmvZtGWja4wpodiUTEpBVWYFkQGRQ8PmJMDPG62 testfile
$

War Ihr Build von ipfs aus dem Quellcode, Ihrem Paketmanager oder der Binärdatei aus dem Web? Versuchen Sie es vielleicht mit einem sauberen ~/.ipfs Verzeichnis, um zu sehen, ob das Problem weiterhin besteht.

Sie stammen alle von Paketmanagern. Jede Ausgabe in den obigen Nachrichten begann mit rm -rf ~/.ipfs && ipfs init .

@Netherdrake, wenn Sie Ihren Daemon mit der Option --routing=none ausführen, schlägt er dann immer noch auf die gleiche Weise fehl?

Mit --routing=none funktioniert es einwandfrei.

Okay, in diesem Fall wird eine Datei hinzugefügt, die dazu führt, dass das Subsystem des DHTs-Anbieters eine Verbindung zu viel zu vielen Peers herstellt. Wenn Sie das Flag --routing=none entfernen und ipfs add --local sollten die Dinge auch gut funktionieren.

Ich arbeite an einem Fix dafür, wir werden hoffentlich etwas in der nächsten Version haben.

Oh, mir ist auch klar, dass dieses Problem im falschen Repository liegt. Verwenden Sie in Zukunft ipfs/go-ipfs, um solche Probleme zu melden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jbenet picture jbenet  ·  34Kommentare

randomshinichi picture randomshinichi  ·  5Kommentare

timthelion picture timthelion  ·  28Kommentare

jbenet picture jbenet  ·  76Kommentare

amiyatulu picture amiyatulu  ·  3Kommentare