[ python-Bugs-858253 ] EAGAIN when sys.stdin.readline()

SourceForge.net noreply at sourceforge.net
Sun Dec 14 05:31:40 EST 2003


Bugs item #858253, was opened at 2003-12-11 13:12
Message generated for change (Comment added) made by frallan
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=858253&group_id=5470

Category: Extension Modules
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Frallan the master Jedi (frallan)
Assigned to: Nobody/Anonymous (nobody)
Summary: EAGAIN when sys.stdin.readline()

Initial Comment:
$ cat test.py
import sys
print sys.stdin.readline()
$ python test.py | python test.py
Traceback (most recent call last):
  File "test.py", line 2, in ?
    print sys.stdin.readline()
IOError: [Errno 35] Resource temporarily unavailable

This happens about 3 times out of 5.
It happens under FreeBSD 5.1-RELEASE (SMP) and:
python-2.1.3
python-2.2.3
python-2.3.2
python-2.3.3c1

It does _not_ happen under Debian 3.0 or 
FreeBSD 4.7-RELEASE (SMP).

According to read(2) this "error" should occur only when 
the descriptor is in non-blocking mode. However as you 
can see from the program it isn't. Further I have caught 
the IOError and run fcntl(F_GETFL) on sys.stdin.fileno() 
and the only flag set is O_RDWR.












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

>Comment By: Frallan the master Jedi (frallan)
Date: 2003-12-14 10:31

Message:
Logged In: YES 
user_id=639616

All my python versions are compiled from source.

Further, since the problem only occur some of the time and 
only on some of the platforms, it's natural to suspect foul play 
from the runtime environment (i.e shell, OS) and that it might 
not be a bug in python. It's not like blocking input should be a 
black art. 

I refuse to believe that this issue has never been raised 
before and subsequently solved. It's just a matter of finding 
the right mailing list archive. The alternative seems to be 
hacking the interpreter and try to narrow it down.


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

Comment By: Hye-Shik Chang (perky)
Date: 2003-12-13 20:22

Message:
Logged In: YES 
user_id=55188

I could not reproduce the error on several versions of FreeBSD:

5.2-BETA Thu Dec  4 21:59:16 KST 2003 i386 (non-SMP)
5.2-CURRENT Sat Dec 13 08:02:47 PST 2003 alpha (SMP)
5.2-CURRENT Tue Dec  9 02:39:36 PST 2003 ia64 (SMP)
5.2-CURRENT Sat Dec 13 07:52:29 PST 2003 i386 (SMP)
5.1-RELEASE Sat Jun 14 05:13:38 KST 2003 i386 (SMP)

Do you have any uncommon factor of environment?
(and did you install the python via ports?)


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

Comment By: Andrew Gaul (gaul)
Date: 2003-12-12 12:00

Message:
Logged In: YES 
user_id=139865

Same on OpenBSD:

$ uname -a
OpenBSD owl 3.2 GENERIC#25 i386
$ python -V
Python 2.2.1
$ python test.py | python test.py
Traceback (most recent call last):
  File "test.py", line 2, in ?
    print sys.stdin.readline()
IOError: [Errno 35] Resource temporarily unavailable

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

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



More information about the Python-bugs-list mailing list