strange timeout error returned by kevent() in 6.0

Igor Sysoev is at rambler-co.ru
Thu Dec 1 09:15:08 GMT 2005


On Thu, 1 Sep 2005, Igor Sysoev wrote:

> On Thu, 1 Sep 2005, Igor Sysoev wrote:
>
>> I found strange timeout errors returned by kevent() in 6.0 using
>> my http server named nginx.  The nginx's run on three machines:
>> two 4.10-RELEASE and one 6.0-BETA3.  All machines serve the same
>> content (simple cluster) and each handles about 200 requests/second.
>> 
>> On 6.0 sometimes (2 or 3 times per hour) in the daytime kevent()
>> returns EV_EOF in flags and ETIMEDOUT in fflags, nevertheless:
>> 
>> 1) nginx does not set any kernel timeout for sockets;
>> 2) the total request time for such failed requests is small, 30 and so 
>> seconds.
>
> I have changed code to ignore the ETIMEDOUT error returned by kevent()
> and found that subsequent sendfile() returned the ENOTCONN.
>
> By the way, why sendfile() may return ENOTCONN ?
> I saw this error code on 4.x too.

Recently I've found that kevent() in FreeBSD 5.4 may return wrong
the ETIMEDOUT too.

Also I've found that recv() on FreeBSD 6.0 may return wrong ETIMEDOUT
error for socket that has no any kernel timeout. It seems this
ETIMEDOUT error masks another error.


Igor Sysoev
http://sysoev.ru/en/


More information about the freebsd-net mailing list