Eiffel Web Framework, приложение, запущенное на Linux, поднимает `Адрес уже используется: IO_FAILURE повышен` - PullRequest
0 голосов
/ 26 декабря 2018

После остановки приложения EWF и его повторного запуска на уже используемом адресе: c_bind Address already in use: IO_FAILURE raised

enter image description here

Как объяснено здесь , похоже, что тайм-аут TCP-сокета не доступен в течение некоторого времени, пока не будет выпущен ОС.

1 Ответ

0 голосов
/ 26 декабря 2018

Лучший обходной путь, который я нашел, это

sudo sh -c 'echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle'

Кредиты этот ответ

Я считаю, что идея сокета недоступна для программыдолжен позволить любым сегментам данных TCP, все еще находящимся в пути, прибывать и отбрасываться ядром.Это значит, что приложение может вызывать close (2) для сокета, но маршрутизация задерживает или делает невозможным управление пакетами, или что вы можете позволить другой стороне TCP-соединения отправлять данные некоторое время.Приложение указало, что оно больше не хочет иметь дело с сегментами данных TCP, поэтому ядро ​​должно просто отбрасывать их по мере их поступления.

действительно что-то изменило.Второму «открывателю» понадобилось около 3 секунд, чтобы получить новый сокет.

...