Issue 3311: block operation on closed socket/pipe for multiprocessing (original) (raw)

Issue3311

Created on 2008-07-07 01:18 by vstinner, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
multiprocessing_closed.patch vstinner,2008-07-07 01:18 Proposition to fix the bugs
Messages (4)
msg69365 - (view) Author: STINNER Victor (vstinner) * (Python committer) 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 (vstinner) * (Python committer) 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 "", line 1, in 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.
msg90768 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2009-07-21 19:44
ping? The bug is still open and valid.
msg97482 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-01-10 00:41
This issue was fixed by r68768 for issue #3321.
History
Date User Action Args
2022-04-11 14:56:36 admin set github: 47561
2010-01-10 00:41:51 vstinner set resolution: fixed
2010-01-10 00:41:41 vstinner set status: open -> closedmessages: +
2009-07-21 19:44:26 vstinner set messages: + versions: + Python 3.0, Python 3.1, Python 2.7, Python 3.2
2009-01-29 22:30:32 vstinner set priority: critical -> normalmessages: +
2008-09-13 00:46:16 benjamin.peterson set priority: criticalkeywords: + needs review
2008-07-19 13:11:37 jnoller set assignee: jnollernosy: + roudkerk, jnoller
2008-07-07 01🔞40 vstinner create