Re: locking problems

Jonathan Roy (roy@atlantic.net)
Thu, 29 May 1997 16:59:29 -0400

Message-Id: <3.0.1.32.19970529165929.006e6f5c@mail.atlantic.net>
Date: Thu, 29 May 1997 16:59:29 -0400
To: George Feinberg <gmf@odi.com>, snapper@OpenMarket.com
From: Jonathan Roy <roy@atlantic.net>
Subject: Re: locking problems
In-Reply-To: <199705292051.QAA08834@loon>



At 04:51 PM 5/29/97 -0400, George Feinberg wrote:
>
>Both Solaris and IRIX have the problem with accept() as far
>as I know.  Multiple accept() calls work fine on HP, DEC unix,
>AIX, and Winsock.
>
>I haven't actually checked with IRIX 6.X, but it was definitely
>a problem in 5.3.
>

  We run the same scripts on a IRIX 6.2 machine, and it hasn't yet (to my
knowledge) broken.

  On a side note, there is another "fix" that may or may not be related to
any of these problems. The alarm() call set before sigsuspend() in
mod_fastcgi.c isn't removed should suspend wake up from a SIGCHLD. Perhaps
there should an alarm(0) call after the sig_suspend to cancel in the
SIGCHLD case. We looked pretty closely at this area of the code though and
it's hard to see how a stray SIGARLM could cause a problem.

  There also might be a concern in calling an alarm(1) on a machine with
high load, as it could take over a second to call sigsuspend() then there
is no alarm to wake it up. Testing and using sigwait or related calls on
machines that support it might be worth it.

  Kudos to Chip for spotting these. :)

-Jonathan


--
Jonathan Roy - roy@idle.com -- Idle Communications, Inc.
Mail rhoefer@cdmag.com to advertise with the Games Domain! 
http://www.gamesdomain.com/ or http://www.gamesdomain.co.uk/