Issue3311
Created on 2008-07-07 01:18 by haypo, last changed 2009-01-29 22:30 by haypo.
|
msg69365 - (view) |
Author: STINNER Victor (haypo) |
Date: 2008-07-07 01:18 |
|
_multiprocessing Connection methods don't check if handle is valid or
not. If you close the socket/pipe, Python may crash on operations,
especially in poll() on FD_SET(...handle, &rdfs).
Example of crash:
----------------------
import _multiprocessing
obj = _multiprocessing.Connection(755)
obj.close()
obj.poll()
----------------------
Attached patch is a proposition of fix to check handle in all
Connection methods using the handle.
|
|
msg80786 - (view) |
Author: STINNER Victor (haypo) |
Date: 2009-01-29 22:30 |
|
This issue is not critical anymore because jesse.noller fixed the
crash in r68768.
Python 2.7a0 (trunk:68873M, Jan 23 2009, 08:46:25)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import _multiprocessing
>>> obj = _multiprocessing.Connection(755)
>>> obj.close()
>>> obj.poll()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: handle out of range in select()
I would prefer a message "I/O operation on closed socket", but you can
close this issue.
Note: I proposed a similar patch to improve the error message ("I/O
operation on closed socket") for the socket module in issue #4853.
|
|
| Date |
User |
Action |
Args |
| 2009-01-29 22:30:32 | haypo | set | priority: critical -> normal messages:
+ msg80786 |
| 2008-09-13 00:46:16 | benjamin.peterson | set | priority: critical keywords:
+ needs review |
| 2008-07-19 13:11:37 | jnoller | set | assignee: jnoller nosy:
+ roudkerk, jnoller |
| 2008-07-07 01:18:40 | haypo | create | |
|