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

Toby Dickenson tdickenson@geminidataloggers.com
Thu, 16 Aug 2001 16:12:35 +0100


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

>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=20
>better diagnosing/fixing the problem.
>
>To sum up:  Under apparently random circumstances and=20
>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 =3D select.select (r,w,e, timeout)
>  select.error: (4, 'Interrupted system call')
>
>Any ideas?

Im not using that version of Zope or Python, but in every version of
asyncore I have seen the call to select is wrapped with a try/except
that traps EINTR, and retries. The version I happen to be using at the
moment looks like:

            try: r,w,e =3D select.select (r,w,e, timeout)
            except select.error, v:
                if v[0] !=3D EINTR: raise
            else: break

Unless your version is different, that traceback 'shouldnt happen'

Toby Dickenson
tdickenson@geminidataloggers.com