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?