]> granicus.if.org Git - python/commit
bpo-33929: multiprocessing: fix handle leak on race condition (GH-7921)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 27 Jun 2018 09:59:44 +0000 (02:59 -0700)
committerGitHub <noreply@github.com>
Wed, 27 Jun 2018 09:59:44 +0000 (02:59 -0700)
commit8b1ebcd7cb3319273ea635df78ebf9ad40171514
tree6d29dde3588cc1f2d1d6ba421b8bf95639c650a0
parent8eac0b8ed56115a1aa315f171b61e7164c6fbeb4
bpo-33929: multiprocessing: fix handle leak on race condition (GH-7921)

Fix a race condition in Popen of
multiprocessing.popen_spawn_win32. The child process now duplicates
the read end of pipe instead of "stealing" it.

Previously, the read end of pipe was "stolen" by the child process,
but it leaked a handle if the child process had been terminated
before it could steal the handle from the parent process.
(cherry picked from commit 2cc9d21fffb8146d30e6fb4221e32410ba4b4ab7)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
Lib/multiprocessing/popen_spawn_win32.py
Lib/multiprocessing/reduction.py
Lib/multiprocessing/spawn.py
Misc/NEWS.d/next/Library/2018-06-26-02-09-18.bpo-33929.OcCLah.rst [new file with mode: 0644]