Ipfs: Ipfs 0.4.10 аварийно завершает работу при добавлении файлов размером более 50 МБ

Созданный на 13 июл. 2017  ·  9Комментарии  ·  Источник: ipfs/ipfs

ОС: 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

Попробуем добавить видео:

ipfs add raw_video.mkv
added Qmf6vier2j9rtG7hjA8Bf8ohzT5VYNmGfRntSc4zXsQyPL raw_video.mkv

Примерно через 15-20 секунд ipfs вылетает:
https://gist.github.com/Netherdrake/4da51b24da82fe25ae476cffeb09cc31

Эта проблема носит периодический характер - иногда добавление будет успешным, и я могу без проблем получить доступ к файлам на localhost:8080/ipfs/HASH/raw_video.mkv , но в большинстве случаев происходит сбой демона.

Самый полезный комментарий

Итак, это случай добавления файла, из-за которого подсистема провайдера DHTs подключается к слишком большому количеству пиров. Если вы удалите флаг --routing=none и используете ipfs add --local все также должно работать нормально.

Я работаю над исправлением этого, надеюсь, у нас будет что-то в следующем выпуске.

Все 9 Комментарий

Вы можете перенаправить на ipfs daemon 2>stderr.log

Я также не могу воспроизвести его, я пробовал файлы размером около 10x60 МБ.

Получается, ipfs крашится при добавлении любого большого файла.

Например, официальный Ubuntu ISO.

В MacOS вылетает:

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

В Linux возникает ошибка, но процесс демона продолжает работать:

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

Я попытался перейти на предыдущие версии, и единственная версия, которая не дает сбоев, это 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

Я не могу воспроизвести это ни в macOS 10.12.5, ни в Ubuntu 16.04, используя ipfs 0.4.10.

$ truncate -s 500M testfile
added QmV7q5aTmvZtGWja4wpodiUTEpBVWYFkQGRQ8PmJMDPG62 testfile
$

Была ли ваша сборка ipfs из исходного кода, вашего менеджера пакетов или бинарного файла из Интернета? Возможно, попробуйте это с чистым каталогом ~/.ipfs чтобы увидеть, сохраняется ли проблема.

Все они из менеджеров пакетов. Каждый вывод в приведенных выше сообщениях начинался с rm -rf ~/.ipfs && ipfs init .

@Netherdrake, если вы запустите свой демон с опцией --routing=none , он все равно выйдет из строя таким же образом?

С --routing=none все работает нормально.

Итак, это случай добавления файла, из-за которого подсистема провайдера DHTs подключается к слишком большому количеству пиров. Если вы удалите флаг --routing=none и используете ipfs add --local все также должно работать нормально.

Я работаю над исправлением этого, надеюсь, у нас будет что-то в следующем выпуске.

О, я также понимаю, что эта проблема находится в неправильном репо. В будущем используйте ipfs/go-ipfs для сообщения о подобных проблемах.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

daviddias picture daviddias  ·  29Комментарии

brainframe-me picture brainframe-me  ·  3Комментарии

PayasR picture PayasR  ·  10Комментарии

myqq0000 picture myqq0000  ·  5Комментарии

Miserlou picture Miserlou  ·  6Комментарии