[issue1422] Writing to an invalid fd doesn't raise an exception
Christian Heimes
report at bugs.python.org
Sun Nov 11 18:26:36 CET 2007
New submission from Christian Heimes:
The bug is related to http://bugs.python.org/issue1415 and occurs only
with the latest patch from #1415.
Writing to an invalid fd doesn't raise an exception:
>>> f = open(100, 'w')
>>> f.fileno()
100
>>> f.write("test")
4
However reading or opening an invalid fd for reading and writing raises
an exception.
>>> f = open(100, 'r')
>>> f.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/heimes/dev/python/py3k/Lib/io.py", line 1253, in read
res += decoder.decode(self.buffer.read(), True)
File "/home/heimes/dev/python/py3k/Lib/io.py", line 756, in read
current = self.raw.read(to_read)
IOError: [Errno 9] Bad file descriptor
>>> f = open(100, 'w+')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/heimes/dev/python/py3k/Lib/io.py", line 195, in __new__
return open(*args, **kwargs)
File "/home/heimes/dev/python/py3k/Lib/io.py", line 169, in open
buffer = BufferedRandom(raw, buffering)
File "/home/heimes/dev/python/py3k/Lib/io.py", line 948, in __init__
raw._checkSeekable()
File "/home/heimes/dev/python/py3k/Lib/io.py", line 301, in _checkSeekable
if msg is None else msg)
IOError: File or stream is not seekable.
I expected that fileio_write() raises an exception when fd is invalid:
n = write(self->fd, ptr, n);
if (n < 0) {
if (errno == EAGAIN)
Py_RETURN_NONE;
PyErr_SetFromErrno(PyExc_IOError);
return NULL;
}
----------
assignee: tiran
components: Interpreter Core
keywords: py3k
messages: 57372
nosy: tiran
priority: normal
severity: normal
status: open
title: Writing to an invalid fd doesn't raise an exception
type: behavior
versions: Python 3.0
__________________________________
Tracker <report at bugs.python.org>
<http://bugs.python.org/issue1422>
__________________________________
More information about the Python-bugs-list
mailing list