Hello Igor,
Thursday, August 16, 2007, 12:21:23 AM, you 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:
EBADF The argument s is not a valid file
descriptor.
ENOMEM There was insufficient memory avail-
able for the operation to complete.
ENOPROTOOPT The option is unknown at the level
indicated.
ENOSR There were insufficient STREAMS
resources available for the opera-
tion to complete.
ENOTSOCK The argument s is not a socket.
ENOBUFS SO_SNDBUF or SO_RCVBUF exceeds a
system limit.
EINVAL Invalid length for IP_OPTIONS.
EHOSTUNREACH Invalid address for IP_MULTICAST_IF.
EINVAL Not a multicast address for
IP_ADD_MEMBERSHIP and
IP_DROP_MEMBERSHIP.
EADDRNOTAVAIL Bad interface address for
IP_ADD_MEMBERSHIP and
IP_DROP_MEMBERSHIP.
EADDRINUSE Address already joined for
IP_ADD_MEMBERSHIP.
ENOENT Address not joined for
IP_DROP_MEMBERSHIP.
EPERM No permissions.
EINVAL The specified option is invalid at
the specified socket level, or the
socket has been shut down.
К сожалению не могу сказать, отличаются ли они от стандартных, но в
линухе у меня список гораздо короче...
> Возможно, это ошибка в nginx'е, а, может быть, в - Солярисе. У Соляриса
> есть проблемы с sendfilev() и event ports, так что вполне могут быть
> и здесь.
Я пока на /dev/poll сижу, так как event ports у меня что-то очень
таращило. Все время что-то не дозагружалось.... Но вроде как event ports стали
совершенно нормально
работать после того, как я поправил маленький косяк в ipf, связанный с
ошибкой при использовании keep state... косяк был очень противный, так
как проявлялся не всегда, а только при определенных
последовательностях открытия соединения.... Вроде все открывалось, в
таблицы состояний все записывалось, но через некоторое время по half
close соединение закрывалось в одну сторону и все... Причем, что самое
забавное, это появилось после того как я поставил патч на ipf
(125015-03, по умолчанию в u3 идет 125015-00), который
исправил работу закрытия по half close (раньше он просто его по
half вообще не закрывал)...
> Уровень crit - потому что ошибка необычна и на неё стоит обратить внимание.
Ясно....
--
Best regards,
Alexey mailto:x-phoenix@xxxxxxx