[ python-Bugs-1049450 ] Solaris: EINTR exception in select/socket calls in telnetlib

SourceForge.net noreply at sourceforge.net
Mon Oct 18 19:39:52 CEST 2004


Bugs item #1049450, was opened at 2004-10-18 17:39
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1049450&group_id=5470

Category: Python Library
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Mike Brauwerman (brauwerman)
Assigned to: Nobody/Anonymous (nobody)
Summary: Solaris: EINTR exception in select/socket calls in telnetlib

Initial Comment:
On Solaris, calls to select.select() and
socket.socket() in telnetlib (and possibly others)
often fail due to unhandled EINTR signals from the OS
while select() is polling.

I think this problem is Solaris-specific since Solaris
has interruptible non-restartable sytem calls.

This behavior is apparently a known issue with the
system API select(); see
  man -s3c select
and
http://lists.community.tummy.com/pipermail/frpythoneers/2000-August/000122.html

The recommend fix from frpythoneers is to wrap the
select (and socket, respectively) calls in a loop:

while True:
  try:
    select.select(...)
    break
  except select.error, v:
    if v[0] == errno.EINTR: continue
    else:        raise 


It's probably more appropriate to put the
exception-handling *inside* select.select (and
socket.socket) but that's beyond my expertise...


OS: SunOS 5.9 Generic_112233-11 sun4u sparc
SUNW,Sun-Blade-100


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

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


More information about the Python-bugs-list mailing list