Received: (from majordom@localhost) by hyperreal.org (8.8.5/8.8.5) id RAA12438; Sat, 6 Sep 1997 17:27:52 -0700 (PDT) Received: (from marc@localhost) by hyperreal.org (8.8.5/8.8.5) id RAA12387 for apache-cvs; Sat, 6 Sep 1997 17:27:46 -0700 (PDT) Date: Sat, 6 Sep 1997 17:27:46 -0700 (PDT) From: Marc Slemko Message-Id: <199709070027.RAA12387@hyperreal.org> To: apache-cvs@hyperreal.org Subject: cvs commit: apache/htdocs/manual/misc fin_wait_2.html Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org marc 97/09/06 17:27:45 Modified: htdocs/manual/misc fin_wait_2.html Log: Update the fin_wait_2 page to reflect the current understanding of the issues; remove the suggestion that Apache is buggy, since no bugs have been found in that code. It now appears most likely that it is just the result of a bad interaction. The real solution, as always, is still a timeout for FIN_WAIT_2. Revision Changes Path 1.11 +12 -13 apache/htdocs/manual/misc/fin_wait_2.html Index: fin_wait_2.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/fin_wait_2.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- fin_wait_2.html 1997/07/06 17:19:06 1.10 +++ fin_wait_2.html 1997/09/07 00:27:44 1.11 @@ -43,8 +43,8 @@
  • But why does it happen?

    -There are several reasons for it happening, and not all of them are -fully understood by the Apache team yet. What is known follows.

    +There are numerous reasons for it happening, some of them may not +yet be fully clear. What is known follows.

    Buggy clients and persistent connections

    @@ -111,15 +111,14 @@ all servers that support persistent connections, including Apache 1.1.x and 1.2.

    -

    Something in Apache may be broken

    +

    A necessary bit of code introduced in 1.2

    While the above bug is a problem, it is not the whole problem. Some users have observed no FIN_WAIT_2 problems with Apache 1.1.x, but with 1.2b enough connections build up in the FIN_WAIT_2 state to -crash their server. We have not yet identified why this would occur -and welcome additional test input.

    +crash their server. -One possible (and most likely) source for additional FIN_WAIT_2 states +The most likely source for additional FIN_WAIT_2 states is a function called lingering_close() which was added between 1.1 and 1.2. This function is necessary for the proper handling of persistent connections and any request which includes @@ -134,13 +133,13 @@ the connection has closed. See the appendix for more details.

    -We have not yet tracked down the exact reason why -lingering_close() causes problems. Its code has been -thoroughly reviewed and extensively updated in 1.2b6. It is possible -that there is some problem in the BSD TCP stack which is causing the -observed problems. It is also possible that we fixed it in 1.2b6. -Unfortunately, we have not been able to replicate the problem on our -test servers.

    +The code in lingering_close() appears to cause problems +for a number of factors, including the change in traffic patterns +that it causes. The code has been thoroughly reviewed and we are +not aware of any bugs in it. It is possible that there is some +problem in the BSD TCP stack, aside from the lack of a timeout +for the FIN_WAIT_2 state, exposed by the lingering_close +code that causes the observed problems.

  • What can I do about it?