[Zope-dev] Re: [Zope] select.error: (4, 'Interrupted system call')

John Ziniti jziniti@speakeasy.org
Thu, 16 Aug 2001 10:57:12 -0400


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