- 26 Jan, 1998 3 commits
-
-
brian authored
If SCO's going to break their links, I'm not going to go searching for where they moved it to. Cold and rainy and dark. ml" --> <H1 ALIGN="CENTER">Connections in the FIN_WAIT_2 state and Apache</H1> <OL> <LI><H2>What is the FIN_WAIT_2 state?</H2> Starting with the Apache 1.2 betas, people are reporting many more connections in the FIN_WAIT_2 state (as reported by <code>netstat</code>) than they saw using older versions. When the server closes a TCP connection, it sends a packet with the FIN bit sent to the client, which then responds with a packet with the ACK bit set. The client then sends a packet with the FIN bit set to the server, which responds with an ACK and the connection is closed. The state that the connection is in during the period between when the server gets the ACK from the client and the server gets the FIN from the client is known as FIN_WAIT_2. See the <A HREF="ftp://ds.internic.net/rfc/rfc793.txt">TCP RFC</A> for the technical details of the state transitions.<P> The FIN_WAIT_2 state is somewhat unusual in that there is no timeout defined in the standard for it. This means that on many operating systems, a connection in the FIN_WAIT_2 state will stay around until the system is rebooted. If the system does not have a timeout and too many FIN_WAIT_2 connections build up, it can fill up the space allocated for storing information about the connections and crash the kernel. The connections in FIN_WAIT_2 do not tie up an httpd process.<P> <LI><H2>But why does it happen?</H2> There are numerous reasons for it happening, some of them may not yet be fully clear. What is known follows.<P> <H3>Buggy clients and persistent connections</H3> Several clients have a bug which pops up when dealing with <A HREF="../keepalive.html">persistent connections</A> (aka keepalives). When the connection is idle and the server closes the connection (based on the <A HREF="../mod/core.html#keepalivetimeout"> KeepAliveTimeout</A>), the client is programmed so that the client does not send back a FIN and ACK to the server. This means that the connection stays in the FIN_WAIT_2 state until one of the following happens:<P> <UL> <LI>The client opens a new connection to the same or a different site, which causes it to fully close the older connection on that socket. <LI>The user exits the client, which on some (most?) clients causes the OS to fully shutdown the connection. <LI>The FIN_WAIT_2 times out, on servers that have a timeout for this state. </UL><P> If you are lucky, this means that the buggy client will fully close the connection and release the resources on your server. However, there are some cases where the socket is never fully closed, such as a dialup client disconnecting from their provider before closing the client. In addition, a client might sit idle for days without making another connection, and thus may hold its end of the socket open for days even though it has no further use for it. <STRONG>This is a bug in the browser or in its operating system's TCP implementation.</STRONG> <P> The clients on which this problem has been verified to exist:<P> <UL> <LI>Mozilla/3.01 (X11; I; FreeBSD 2.1.5-RELEASE i386) <LI>Mozilla/2.02 (X11; I; FreeBSD 2.1.5-RELEASE i386) <LI>Mozilla/3.01Gold (X11; I; SunOS 5.5 sun4m) <LI>MSIE 3.01 on the Macintosh <LI>MSIE 3.01 on Windows 95 </UL><P> This does not appear to be a problem on: <UL> <LI>Mozilla/3.01 (Win95; I) </UL> <P> It is expected that many other clients have the same problem. What a client <STRONG>should do</STRONG> is periodically check its open socket(s) to see if they have been closed by the server, and close their side of the connection if the server has closed. This check need /export/home/cvs/CVSROOT/cvsedit git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80010 13f79535-47bb-0310-9956-ffa450edef68
-
brian authored
Make all references complete. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80007 13f79535-47bb-0310-9956-ffa450edef68
-
brian authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80005 13f79535-47bb-0310-9956-ffa450edef68
-
- 25 Jan, 1998 8 commits
-
-
Ken Coar authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80002 13f79535-47bb-0310-9956-ffa450edef68
-
lookit authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80001 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
blanks in ap.h and Makefile.tmpl. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80000 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79999 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
- no need to play with atime/mtime crud, the web server doesn't preserve that info normally anyhow - deal with r->finfo.st_mode == 0 || !r->filename (i.e. not a disk file) - don't reference mime_module.type_checker, this should be controlled by the ordering within Configuration - work properly with multiple vhosts - doc update: even prior to this patch, the code was disabled if there was no MimeMagicFile directive. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79998 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79996 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79995 13f79535-47bb-0310-9956-ffa450edef68
-
lookit authored
for OS's which don't support starting them automatically (enable with #define NEED_HASHBANG_EMUL) Obtained from: tcsh-6.07.05, written by peter@zeus.dialix.oz.au (Peter Wemm) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79994 13f79535-47bb-0310-9956-ffa450edef68
-
- 24 Jan, 1998 19 commits
-
-
dgaudet authored
The proxy has all of its own "table" manipulation routines... like it has struct hdr_entry, and proxy_get_header() and all this crap. But it was mixing the use of the real table routines and its own routines. Clean this up. (Ultimately someone should clean it up to use the real table routines, I can't see why it doesn't.) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79993 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79992 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79991 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
renaming; the final new name is yet TBD, but the old name is definitely dead. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79990 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79989 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79988 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
routines in alloc.h to treat table as an opaque type, however even we got lazy at times and didn't do the right thing. This change causes compile time errors for folks who aren't treating table as an opaque type. It was built as part of my table hashing patch, but the hashing has all been removed (since it didn't appear to be a win). Reviewed by: Paul Sutton git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79987 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79986 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79985 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
in order to avoid name collisions with LDAP libraries. The function can't be made static without breaking mod_perl, so I've created the "ap__" prefix for private non-static non-API identifiers. Somewhat arbitrary, but it sort of goes along with "ap_" referring to Apache httpd-neutral names - the double-underbar means that these *aren't* httpd-neutral. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79984 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79983 13f79535-47bb-0310-9956-ffa450edef68
-
Ben Laurie authored
PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79982 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79981 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79980 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
renaming issue. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79979 13f79535-47bb-0310-9956-ffa450edef68
-
Marc Slemko authored
PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79978 13f79535-47bb-0310-9956-ffa450edef68
-
Marc Slemko authored
PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79977 13f79535-47bb-0310-9956-ffa450edef68
-
Marc Slemko authored
PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79976 13f79535-47bb-0310-9956-ffa450edef68
-
Marc Slemko authored
work, but may need more testing. PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79975 13f79535-47bb-0310-9956-ffa450edef68
-
- 23 Jan, 1998 4 commits
-
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79974 13f79535-47bb-0310-9956-ffa450edef68
-
Ken Coar authored
out all references to it that assume it is. Plus some miscellaneous HTML cleanup. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79973 13f79535-47bb-0310-9956-ffa450edef68
-
Roy T. Fielding authored
request body if one exists. The hack for ErrorDocument is removed since it interferes with the fix and should not be needed anyway. PR: 1399 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79971 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
Obtained from: Submitted by: Jim Jagielski Reviewed by: Best of both worlds... Let the world know if we have mmap and/or shmget as well as controlling which to use for scoreboard. This should be a complete patch, so if any docs were skipped, feel free to update 'em git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79970 13f79535-47bb-0310-9956-ffa450edef68
-
- 22 Jan, 1998 6 commits
-
-
Jim Jagielski authored
Obtained from: Submitted by: Jim Jagielski Reviewed by: Modified versions of PhaseII of the #define changes (phaseI was designed only to make the changes in files that the previous names existed and phaseII was then to add notice of those changes where appropriate; however most of phaseII got stomped on) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79968 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79967 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79966 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79965 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79964 13f79535-47bb-0310-9956-ffa450edef68
-
dgaudet authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@79963 13f79535-47bb-0310-9956-ffa450edef68
-