I am moving this thread over from the zope list in the hope that someone here may have more insight into the nature of this problem, and perhaps how to go about better diagnosing/fixing the problem. To sum up: Under apparently random circumstances and rather mild amounts of traffic, Zope is crashing and printing the Traceback below to the console. This is Zope-2.4.0, Python-2.1.1 on SunOS 5.8/Sparc. Traceback (most recent call last): File "/u01/zope/Zope-2.4.0-src/z2.py", line 774, in ? asyncore.loop() File "/u01/zope//lib/python2.1/asyncore.py", line 194, in loop poll_fun (timeout, map) File "/u01/zope//lib/python2.1/asyncore.py", line 86, in poll r,w,e = select.select (r,w,e, timeout) select.error: (4, 'Interrupted system call') Any ideas? Thanks in advance, Ziniti On Thu, 16 Aug 2001 14:58:48 +0100 "J. Cone" <jcone@g8labs.com> wrote:
Could do.
The old unix semantics say you deliver a signal to a process. After the process has split itself into a bunch of threads, it's unclear which one will get to handle it. I suspect SunOS favours ones that are blocked, which would make sense if they were blocked in sigsuspend, waiting for a signal, but that's not your situation :-)
This conversation may belong on the zope-devel mailing list, where I expect they have people who understand which signals Zope is supposed to accept, and how.
At 09:38 16/08/01 -0400, John Ziniti wrote:
I just have a hunch this problem has something to do with threads, but I don't know why. Does that make any sense?
from $PYTHON_SOURCE/Modules/selectmodule.c:
Py_BEGIN_ALLOW_THREADS n = select(max, &ifdset, &ofdset, &efdset, tvp); Py_END_ALLOW_THREADS
if (n < 0) { PyErr_SetFromErrno(SelectError);
Man, I hate Solaris! I want my Linux box back!
On Thu, 16 Aug 2001 13:56:45 +0100 "J. Cone" <jcone@g8labs.com> wrote:
In my application area, an error like that would mean: - you blocked on a set of file descriptors - either - someone tried to kill you, so you clean up and then exit or - a timer went off so you handle it and then block again
Is it possible to handle signals in python and find out who's sending them?
Is it running in a terminal (could be ^c'd) or as a daemon (could get SIGTERM on change of run-level) ?
Do any other processes on this box incurr stray fingers of G_d?
At 08:40 16/08/01 -0400, Chris McDonough wrote:
Geez. I'm not sure, John. This error is being raised by the OS in the middle of a system call. I don't know enough about Solaris to be able to give you any direction. Perhaps someone else can chime in? Anybody else seen this?
John Ziniti wrote:
This is SunOS 5.8 running on a Sparc.
On Wed, 15 Aug 2001 17:25:10 -0400 "Chris McDonough" <chrism@zope.com> wrote:
THis is an odd error... what OS?
----- Original Message ----- From: "John Ziniti" <jziniti@speakeasy.org> To: <zope@zope.org> Sent: Wednesday, August 15, 2001 5:11 PM Subject: [Zope] select.error: (4, 'Interrupted system call')
>Hey all, > >I've been getting this all day today since I upgraded >to Python 2.1.1 and Zope-2.4.0. It seems to happen >randomly, but mostly when I am moving around the ZMI, >the more I move around, the more likely it is to occur. > >It also brings down the Zope server, requiring a restart >and is thuis rather annoying. Any ideas on causes, fixes, >hunches? The traceback (printed to console) follows. > >Traceback (most recent call last): > File "/u01/zope/Zope-2.4.0-src/z2.py", line 774, in ? > asyncore.loop() > File "/u01/zope//lib/python2.1/asyncore.py", line 194, in loop > poll_fun (timeout, map) > File "/u01/zope//lib/python2.1/asyncore.py", line 86, in poll > r,w,e = select.select (r,w,e, timeout) >select.error: (4, 'Interrupted system call') > > >Thanks in advance, > >Ziniti > > >--
-- John Ziniti Channing Laboratory Brigham and Women's Hospital 181 Longwood Avenue Brookline, MA 02115 john.ziniti@channing.harvard.edu