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: