Ipfs: Ipfs 0.4.10 trava ao adicionar arquivos maiores que 50 MB

Criado em 13 jul. 2017  ·  9Comentários  ·  Fonte: ipfs/ipfs

SO: Arch Linux e 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

Vamos tentar adicionar um vídeo:

ipfs add raw_video.mkv
added Qmf6vier2j9rtG7hjA8Bf8ohzT5VYNmGfRntSc4zXsQyPL raw_video.mkv

Cerca de 15 a 20 segundos depois, o ipfs travará:
https://gist.github.com/Netherdrake/4da51b24da82fe25ae476cffeb09cc31

Esse problema é intermitente - às vezes a adição será bem-sucedida e posso acessar os arquivos em localhost:8080/ipfs/HASH/raw_video.mkv sem problemas, mas na maioria das vezes, o daemon falha.

Comentários muito úteis

ok, então este é um caso de adicionar um arquivo fazendo com que o subsistema do provedor de DHTs se conecte a muitos pares. Se você remover o sinalizador --routing=none e usar ipfs add --local coisas também devem funcionar bem.

Estou trabalhando em uma correção para isso, esperamos ter algo na próxima versão.

Todos 9 comentários

Você pode redirecionar por ipfs daemon 2>stderr.log

Também não consigo reproduzi-lo, tentei cerca de 10x60MiB de arquivos.

Acontece que o ipfs irá travar ao adicionar qualquer arquivo grande.

Por exemplo, ISO oficial do Ubuntu.

No MacOS ele trava:

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

No Linux, ocorre um erro, mas o processo daemon parece continuar em execução:

~/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

Eu tentei fazer o downgrade para versões anteriores, e a única versão que não trava é 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

Não consigo reproduzir isso no macOS 10.12.5 e no Ubuntu 16.04 usando o ipfs 0.4.10.

$ truncate -s 500M testfile
added QmV7q5aTmvZtGWja4wpodiUTEpBVWYFkQGRQ8PmJMDPG62 testfile
$

Sua compilação de ipfs foi da fonte, seu gerenciador de pacotes ou o binário da web? Talvez tente com um diretório ~/.ipfs limpo para ver se o problema persiste.

Eles são todos de gerenciadores de pacotes. Cada saída nas mensagens acima começou com rm -rf ~/.ipfs && ipfs init .

@Netherdrake se você executar seu daemon com a opção --routing=none , ele ainda falha da mesma maneira?

Com --routing=none funciona bem.

ok, então este é um caso de adicionar um arquivo fazendo com que o subsistema do provedor de DHTs se conecte a muitos pares. Se você remover o sinalizador --routing=none e usar ipfs add --local coisas também devem funcionar bem.

Estou trabalhando em uma correção para isso, esperamos ter algo na próxima versão.

Ah, também percebo que esse problema está no repositório errado. No futuro, use ipfs/go-ipfs para relatar problemas como este.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

myqq0000 picture myqq0000  ·  5Comentários

timthelion picture timthelion  ·  28Comentários

crazysoldier picture crazysoldier  ·  7Comentários

PayasR picture PayasR  ·  10Comentários

daviddias picture daviddias  ·  29Comentários