Crit error: setsockopt(TCP_NODELAY) failed

Igor Sysoev is at rambler-co.ru
Thu Aug 16 10:16:27 MSD 2007


On Thu, Aug 16, 2007 at 09:59:52AM +0400, Alexey Rymonin wrote:

> > On Wed, Aug 15, 2007 at 08:47:24PM +0400, Alexey Rymonin wrote:
> 
> >>    2007/08/15 09:21:36 [crit] 3725#0: *364930 setsockopt(TCP_NODELAY)
> >>    failed (22: Invalid argument) while keepalive, client: 89.207.94.130
> 
> > Если клиент закрыл соединение, то по идее, должно быть что-то вроде
> > Connection reset by peer или Socket is not connected, хотя, возможно,
> > в Солярисе и по-другому.
> 
> Единственное, что я нашел еще это
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378870
> Интерес там представляет следующее
> On Solaris the setsockopt(3SOCKET) call returns EINVAL when the connection is reset.
> 
> А вообще у нее такие ошибки:
> 
> ERRORS
>      The getsockopt() and setsockopt() calls succeed unless:

>      EINVAL                  The specified option is  invalid  at
>                              the  specified  socket level, or the
>                              socket has been shut down.

Могли бы сделать ENOTCONN или EPIPE.
А сейчас это не отличимо от ситуации, когда программа передают мусор в ядро.

> К сожалению не могу сказать, отличаются ли они от стандартных, но в
> линухе у меня список гораздо короче...
>                              
> > Возможно, это ошибка в nginx'е, а, может быть, в - Солярисе. У Соляриса
> > есть проблемы с sendfilev() и event ports, так что вполне могут быть
> > и здесь.
> 
> Я пока на /dev/poll сижу, так как event ports у меня что-то очень
> таращило. Все время что-то не дозагружалось.... Но вроде как event ports стали совершенно нормально
> работать после того, как я поправил маленький косяк в ipf, связанный с
> ошибкой при использовании keep state... косяк был очень противный, так
> как проявлялся не всегда, а только при определенных
> последовательностях открытия соединения.... Вроде все открывалось, в
> таблицы состояний все записывалось, но через некоторое время по half
> close соединение закрывалось в одну сторону и все... Причем, что самое
> забавное, это появилось после того как я поставил патч на ipf
> (125015-03, по умолчанию в u3 идет 125015-00), который
> исправил работу закрытия по half close (раньше он просто его по
> half вообще не закрывал)...

event ports в какой-то момент перестают сообщать о новых соединениях.


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





More information about the nginx-ru mailing list