You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Marcel Knol <ma...@aware.nl> on 1997/07/22 12:50:02 UTC
os-solaris/896: Even with patch, HTTPd will not survive HUP or even start up
>Number: 896
>Category: os-solaris
>Synopsis: Even with patch, HTTPd will not survive HUP or even start up
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: apache (Apache HTTP Project)
>State: open
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Tue Jul 22 03:50:01 1997
>Originator: marcel@aware.nl
>Organization:
apache
>Release: 1.2.1
>Environment:
Solaris 2.5.1, SUN Sparc Ultra 2, 2 processors, 512 MB memory.
Apache 1.2.1 with Solaris HUP patch applied
>Description:
As also described in #888, the 1.2.1 with Solaris HUP patch applied does not
solve the problem. When "netstat" still shows FIN_WAIT_2 and TIME_WAIT, the
HTTPd will not cold-start until all connections "have left" the netstat output.
Then the HTTPd will cold-start. Otherwise the error "Bind: Address already in
use, httpd: could not bind to port 80" is displayed.
When HTTPd is in a running state and receiving a SIGHUP, the HTTPd dies
with "Bind: Address already in use, httpd: could not bind to port 80".
It looks like the "bind()" is done before setting the option "REUSEADDR".
>How-To-Repeat:
I just applied the patch and recompiled. The problem only shows up at busy
websites I think. Two of our Ultra-2 show the problem (they are heavily
loaded). The third Ultra-2 is hardly loaded and does not show the problem.
Probably because there are no active connections during the SIGHUP.
>Fix:
I looked at the code and there is a bind before setting the REUSEADDR. Maybe
this is the problem. I am not an expert in this field
>Audit-Trail:
>Unformatted: