You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Rob Hartill <ha...@hyperreal.com> on 1995/10/25 21:58:32 UTC
WWW Form Bug Report: "Wouldn't spawn spare servers." on FreeBSD (fwd)
excuse the awful mess, but that's what the bug script sends...
no ack sent
Forwarded message:
> From nobody@hyperreal.com Wed Oct 25 11:08:23 1995
> Message-Id: <19...@taz.hyperreal.com>
> From: jlummel@caprica.com
> To: apache-bugs%apache.org@organic.com
> Date: Wed Oct 25 11:08:21 1995
> Subject: WWW Form Bug Report: "Wouldn't spawn spare servers." on FreeBSD
>
> Submitter: jlummel@caprica.com
> Operating system: FreeBSD, version: 2.0.5
> Extra Modules used: None
> URL exhibiting problem:
>
> Symptoms:
> --
> Server would never create spare children. This was due to the use of setjmp instead of the newer sigsetjmp in the http_main.c, in the wait_or_timeout() routine (diff follows): *************** --- 475,504 ---- /* Finally, this routine is used by the caretaker process to wait for * a while... */ ! #ifdef NEXT static jmp_buf wait_timeout_buf; + #else + static sigjmp_buf wait_timeout_buf; + #endif static int wait_or_timeout_retval = -1; static void longjmp_out_of_alarm (int sig) { + #ifdef NEXT longjmp (wait_timeout_buf, 1); + #else + siglongjmp (wait_timeout_buf, 1); + #endif } int wait_or_timeout (int *status) { wait_or_timeout_retval = -1; + #ifdef NEXT if (setjmp(wait_timeout_buf) != 0) { + #else + if (sigsetjmp(wait_timeout_buf,1) != 0) { + #endif errno = ETIMEDOUT; alarm(0); return wait_or_timeout_retval; ***************
> --
>
> Backtrace:
> --
>
> --
>