[Python-bugs-list] [ python-Bugs-453099 ] select in asyncore not defensive

noreply@sourceforge.net noreply@sourceforge.net
Sun, 19 Aug 2001 15:24:35 -0700


Bugs item #453099, was opened at 2001-08-19 15:24
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=453099&group_id=5470

Category: Python Library
Group: Python 2.1.1
Status: Open
Resolution: None
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: select in asyncore not defensive

Initial Comment:
The poll method in asyncore.py does not wrap the
select.select call on line 86 in a try/except block to
test for EINTR/EWOULDBLOCK and then try the select call
again. This was brought to my attention during the
perusal of the Zope-dev list. Seems like the person who
originally reported the symptom did not open a bug so I
thought I would.

Platform: SunOS 5.8/Sparc
Python version: 2.1.1
Zope version: 2.4.0

Thanks.

Here is the mail from a person on the Zope-dev mailing
list:

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')



----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=453099&group_id=5470