solaris readv() error

Igor Sysoev is at rambler-co.ru
Sat Mar 1 11:06:01 MSK 2008


On Sat, Mar 01, 2008 at 02:36:32PM +1000, Den Ivanov wrote:

> Nginx 0.5.35 в режиме прокси, solaris 10 x86, в логах появляются такие
> ошибки: 
> 
>  
> 
> 2008/02/29 03:04:33 [crit] 3274#0: *51525 readv() failed (22: Invalid
> argument) while reading upstream, client: 77.91.224.11, server:
> www.xxxxxx.ru, request: "GET
> /%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Allpages/%D0%91
> HTTP/1.1", upstream: "fastcgi://10.10.10.10:1026", host: "www. xxxxxx.ru"

Тут возмомжны два варианта:

1) ошибка в nginx'e - он передаёт в ядро неверные данные,

2) бэкенд закрыл соединение с RST и ядро считает сокет не соединённым.
   Другие ОС в отличии от Соляриса таких случаях вовращают
   "Connection reset by peer" или "Socket is not connected", что
   во-первых, отражает действительную причину ошибку, а во-вторых,
   не смешивает серьёзную ошибку в самом приложении с ошибкой, внешней
   по отношении к приложению.

> Что при этом получает клиент, пока не знаю. В изменениях NGINX нашел такую
> запись, очень похожую на мою ситуацию: 

Оборванный ответ.

> 0.1.5                                                11.11.2004 
> 
> Исправление: в режиме прокси без использования sendfile на Solaris возникала
> ошибка "writev() failed (22: Invalid argument)". На других платформах, не
> поддерживающих sendfile, процесс зацикливался.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list