Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email email@example.com
From: Chris Evans (chrisscary.beasts.org)
Date: Wed Feb 07 2001 - 18:44:13 CST
On Thu, 8 Feb 2001, Solar Designer wrote:
> 1. You're calling exit(3) from a signal handler, while in a "bad
> state" (possibly somewhere inside libc stdio code).
Yes. It's a SIGCHLD handler which is essentially just "getting the hell
out", after shutting down/closing a few fd's.
I'm now using _exit(), but I'm still curious why exit() segfaults
sometimes. The call stack is something like
read(2) <-- blocking on a unix dgram socket read
SIGCHLD arrives, enters signal handler
What sort of "bad state" do you envisage?
> BTW, the OpenBSD folks are fixing two interesting classes of
> bugs now: fd_set overflows and various signal races. The latter
> are relevant to your problem.