"recv() failed (71: Protocol error) while keepalive"

Maxim Dounin mdounin at mdounin.ru
Mon Jan 27 13:13:36 UTC 2014


Hello!

On Mon, Jan 27, 2014 at 04:54:39AM -0500, skeletor wrote:

> Вот такое редко проскакивает в логах. Что это может значить? Нашёл на одном
> ресурсе описание ошибки 71. Привожу цитату:
> 
> Очень частый случай это когда веб-сервер вместо ответа просто посылает FIN,
> потому что на его стороне воркер упал или что еще нехорошее

Цитата очевидно неправильная, т.к. FIN вместо ответа - это вполне 
штатный способ закрыть соединение.

Судя по коду ядра Linux'а (судя по коду ошибки, операционная 
система - Linux?) - такое может быть при получении ICMP Parameter 
Problem.  Почему оно у вас возникает - отдельный интересный 
вопрос.

Вообще POSIX не предполагает возврат EPROTO из recv(), см. тут:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/recv.html

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru