Osma Suominen wrote at 2004-3-22 14:20 +0200:
... Zope is running behind Apache. The symptom is that zope stops responding to requests, so the requests just hang until timeout. The processes are running, but a kill -TERM won't kill them. kill -9 helps.
I have had this today. Fortunately, in a reproducable setup. The analysis revealed: Zope got a SIGSEGV because the C runtime stack overflew (application bug). One of the Zope threads died as a result of the SIGSEGV. The others entered an unhealthy state: process "1" became their parent, they could only be attached by "gdb" as user "root", they held Zope's ports open, they could only be killed by "kill -9". Shane shed some light on the situation: Python blocks signals in threads other than the main thread. Thus, only the main thread receives signals (other than SIGSEGV) This is documented behaviour but arguably wrong for SIGSEGV (and some further signals). -- Dieter