On Thu, Apr 14, 2005 at 12:02:35PM -0700, Wilfredo SÃnchez Vega wrote: > We're investigating possible issues in the system. One comment > from a kernel developer: > > We are returning EWOULDBLOCK because the socket is in non-blocking. > Inspecting the socket, so_state is 0x182 (0x100 is SS_NBIO). > Setting > a breakpoint on soioctl for SS_NBIO I can clearly see that httpd > is setting the socket as non-blocking. httpd is using fcntl which > translate the non-blocking change to an soioctl. > > Does it make sense that the socket is non-blocking?
Recent httpd releases (2.0.49 onwards) will set listening sockets as non-blocking if more than one listener is configured, to fix CAN-2004-0174. This caused a number of obscure regressions on BSD platforms where APR failed to detect (or, in some cases, the OS failed to correctly report) whether or not O_NONBLOCK is inherited across to the socket returned by accept(). That would be the first thing to check if you're seeing issues like this - the test program APR uses is here: http://people.apache.org/~jorton/nonblock.c joe
