>Number:         1354
>Category:       general
>Synopsis:       Running apache in inetd mode fails silently
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Mon Nov  3 22:10:00 PST 1997
>Last-Modified:
>Originator:     [EMAIL PROTECTED]
>Organization:
apache
>Release:        1.3b2
>Environment:
uname -a says: Linux scuzzbopper 2.0.30 #3 Wed Sep 17 18:56:43 PDT 1997 i586 
unknown

I'm running gcc 2.7..2.2, on a standard Slackware 95 installation of Linux.
>Description:
When apache was configured for inetd mode, it would produce no output and no 
log files.  I found no core, and no signal.

I added many syslog calls to find that in:src/main/http_main.c, in the function 

unsigned int set_callback_and_alarm(void (*fn) (int), int x)

the program would apparently cause a segmentaion violation, in this block:

    old = scoreboard_image->servers[my_child_num].timeout_len;
    scoreboard_image->servers[my_child_num].timeout_len = x;
    ++scoreboard_image->servers[my_child_num].cur_vtime;

Nothing is output, and the ports are closed.

I assumed (and did not check!) that the problem is that standalone_main dosen't 
  initalize the my_chuld and/or scoreboard_image data correctly.

For my usage, I just uncommented the OPTIMIZE_TIMEOUTS definition, and that 
worked fine, but that's not going to work for the main distribution, is it?
>How-To-Repeat:
Build so that the OPTIMIZE_TIMEOUTS constant is defined, and run in inetd mode, 
connecting to the server.
>Fix:
Either check the standalone flag and just use signals, or make sure the 
scoreboard table is initalized.  I didn't diagnose what was wrong with the 
scoreboard table, if it was not initalized, or my_child_num wasn't right or what
>Audit-Trail:
>Unformatted:

Reply via email to