www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Work <w...@cadvision.com>
Subject os-aix/878: Server stops responding when a socket gets stuck in the CLOSE_WAIT state
Date Thu, 17 Jul 1997 19:10:02 GMT

>Number:         878
>Category:       os-aix
>Synopsis:       Server stops responding when a socket gets stuck in the CLOSE_WAIT state
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apache (Apache HTTP Project)
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Thu Jul 17 12:10:01 1997
>Originator:     work@cadvision.com
>Release:        1.2.1
AIX Version 4.1.5 compiled with gcc 2.7.2 (-O2)
uname -a: AIX elmo 1 4 00052856A000
When the default USE_LINGER option is compiled in the apache server will
occasionlly lock up and stop accepting new requests. If you do a netstat -na
you will see that one of the client sockets is in the CLOSE_WAIT state. It
does not timeout after 30 seconds, and the server stays locked up until
its send the server a -HUP or -USR1 signal.

I got the Server to lockup by constantly reloading a page with lots of
graphics on both MSIE 3.01 on Windows 95 and Netscape 3.01 on an RS6000
AIX workstation. It seems that a premature close by the web broswer on
a open connection is what causes the problem. It looks like the linger
function keeps trying to send the data, and never gives up.

The Apache web server is running on a AIX 4.1 server with 8 PowerPC 604
processors and 512MB of ram. Its currently running 623 virtual web servers
without a problem. Each virtual web server can still transfer data at about
600KB/sec. The server should be able to reach about 1950 virtual web servers
before hitting the server hardlimit. I have gotten it up to 768 virtual
web servers.

Compile on an Aix 4.1 system with gcc 2.7.7 and make sure that the
USE_LINGER compile option is set. Then keep trying to reload a page with
lots of graphics while interrupting it to try and break the open connections.
Set the -DNO_LINGER compile option under AIX. The -DSO_LINGER option doesn't
work under AIX either since it blocks the process

View raw message