>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: [EMAIL PROTECTED] >Organization: apache >Release: 1.2.1 >Environment: AIX Version 4.1.5 compiled with gcc 2.7.2 (-O2) uname -a: AIX elmo 1 4 00052856A000 >Description: 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. >How-To-Repeat: 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. >Fix: Set the -DNO_LINGER compile option under AIX. The -DSO_LINGER option doesn't work under AIX either since it blocks the process >Audit-Trail: >Unformatted:
