You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Marc Slemko <ma...@znep.com> on 1997/01/19 08:56:22 UTC

solution for lingering problems found?

Does anyone have any reasons why we need to use any lingering things (ie.
either SO_LINGER or lingering_close) other than broken SVR4 systems that
discard unsent data when a socket is destroyed?  From checking the list
archives, that seems to be the only reason the lingering stuff was added.

I just noticed the following in the Unix sockets FAQ:

   Closing a socket: if SO_LINGER has not been called on a socket, then  
   close() is not supposed to discard data. This is true on SVR4.2 (and, 
   apparently, on all non-SVR4 systems) but apparently not on SVR4; the
   use of either shutdown() or SO_LINGER seems to be required to     
   guarantee delivery of all data.                                       

This should mean that if we change child_main to do a shutdown() and not
just a close(), we can get rid of all the lingering junk entirely and
still make things work.  This should get rid of most, but probably not
all, of the FIN_WAIT_2 problems.

Anyone have a SVR4.2 box (ISTR Unixware may have the same problems) to
test this on?