www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard.Seaman@hyperreal.com, "Jr." <d...@tar.com>
Subject general/592: httpd exits on Signal 11 in inted mode after keep alive timeout
Date Fri, 16 May 1997 19:10:01 GMT

>Number:         592
>Category:       general
>Synopsis:       httpd exits on Signal 11 in inted mode after keep alive timeout
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache (Apache HTTP Project)
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Fri May 16 12:10:00 1997
>Originator:     dick@tar.com
>Release:        1.2b10
FreeBSD ns.tar.com 2.2-STABLE FreeBSD 2.2-STABLE #0: Thu May 15 21:02:22 CDT 1997
Syslog reports (example):
May 16 13:22:42 ns /kernel: pid 2754 (httpd), uid 1004: exited on signal 11
May 16 13:23:10 ns /kernel: pid 2755 (httpd), uid 1004: exited on signal 11

after access from at least some versions of Netscape (eg. Version 2.2 for OS/2
and 3.0 gold for Win 95).

httpd is running in inetd mode with following options:
KeepAlive On
KeepAliveTimeout 15
BrowserMatch Mozilla/2 nokeepalive

When running in inetd mode, when the keep alive timer expires 
the function timeout is invoked.  At line 375 in http_main.c
the following code is executed:

    if (!current_conn) {
	ap_longjmp (jmpbuffer, 1);

In inetd mode current_conn is never set, so it is NULL.  Also,
ap_setjmp is never called in inetd mode, so jmpbuffer is not
initialized.  I believe that the signal 11 is generated by the
call to ap_longjmp on the unitialized jmpbuffer.

One work around is to set:

current_conn = conn;

after line 2456 of http_main.c.

However, it is not clear to me whether this is the exact correct
solution, or whether the function timeout needs to be modified for
inetd keep alive timeout processing.

It seems that even with this fix, current_conn could still be NULL,
though this is unlikely?  However, the httpd process may terminate
before keep alive timeout expires in this case??  You'll have to check

View raw message