[Zope-dev] Re: [Zope] select.error: (4, 'Interrupted system call')
John Ziniti
jziniti@speakeasy.org
Thu, 16 Aug 2001 12:34:58 -0400
Adding the try/except "helps" ... some print's lead me
to belive that the error is actually EWOULDBLOCK and not
EINTR.
I moved zopeinstancehome and I am starting Zope with a
clean Data.fs and no Products. This version seems to
be more stable. I'm going to slowly add in Products
until I can crash it again and I'll try to post any
results later ...
On Thu, 16 Aug 2001 11:22:18 -0400
John Ziniti <jziniti@speakeasy.org> wrote:
> Thanks, Toby ... my asyncore has no try/except:
>
> from $PYTHON_SOURCE/Lib/asyncore.py
>
> for fd, obj in map.items():
> if obj.readable():
> r.append (fd)
> if obj.writable():
> w.append (fd)
> r,w,e = select.select (r,w,e, timeout)
>
> if DEBUG:
> print r,w,e
>
> What's up with that.
>
>
> On Thu, 16 Aug 2001 16:12:35 +0100
> Toby Dickenson <tdickenson@devmail.geminidataloggers.co.uk> wrote:
>
> > 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
> > >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?
> >
> > 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 = select.select (r,w,e, timeout)
> > except select.error, v:
> > if v[0] != EINTR: raise
> > else: break
> >
> > Unless your version is different, that traceback 'shouldnt happen'
> >
> > Toby Dickenson
> > tdickenson@geminidataloggers.com
> >
> > _______________________________________________
> > Zope-Dev maillist - Zope-Dev@zope.org
> > http://lists.zope.org/mailman/listinfo/zope-dev
> > ** No cross posts or HTML encoding! **
> > (Related lists -
> > http://lists.zope.org/mailman/listinfo/zope-announce
> > http://lists.zope.org/mailman/listinfo/zope )
> >
>
>
> --
> John Ziniti
> Channing Laboratory
> Brigham and Women's Hospital
> 181 Longwood Avenue
> Brookline, MA 02115
> john.ziniti@channing.harvard.edu
>
> _______________________________________________
> Zope-Dev maillist - Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope )
>
--
John Ziniti
Channing Laboratory
Brigham and Women's Hospital
181 Longwood Avenue
Brookline, MA 02115
john.ziniti@channing.harvard.edu