Issue 18382: multiprocessing's overlapped PipeConnection issues on Windows 8 (original) (raw)

Created on 2013-07-06 12:45 by wprins, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
18382_1.patch steve.dower,2015-02-21 18:00 review
Messages (13)
msg192431 - (view) Author: Walter Prins (wprins) Date: 2013-07-06 12:45
It appears that Windows 8 (Version 6.2.9200 x64) has introduced changes in behaviour that causes the multiprocessing module's use of overlapped PipeConnection to fail (Python 3.4 32bit and release 3.3.2 32bit). This issue previously existed (see issue #12328 point 1) and was fixed but the fixes for #12328 do not appear to work on Windows 8. Specifically the test test_multiprocessing._TestPoll.test_empty_string fails with message: FAIL: test_empty_string (Lib.test.test_multiprocessing.WithProcessesTestPoll) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Users\Walter\Documents\src\cpython\Lib\test\test_multiprocessing.py", line 2416, in test_empty_string self.assertEqual(a.poll(), True) AssertionError: False != True Additionally, there appears to be no buildbot for Windows 8 currently, would it be possible to have one set up?
msg192455 - (view) Author: Richard Oudkerk (sbt) * (Python committer) Date: 2013-07-06 15:44
Does that test always fail?
msg192488 - (view) Author: Walter Prins (wprins) Date: 2013-07-06 21:41
On 6 July 2013 16:44, Richard Oudkerk <report@bugs.python.org> wrote: > > Richard Oudkerk added the comment: > > Does that test always fail? Yes it does. I should've probably added in the original report that the following test (test_strings) also fail, possibly/probably due to the same issue. If you'd like me to post more details please ask. Walter > > ---------- > nosy: +sbt > > _______________________________________ > Python tracker <report@bugs.python.org> > <http://bugs.python.org/issue18382> > _______________________________________ >
msg192751 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-07-09 13:54
All the buildbots are volunteer hosted and run, so we need someone to volunteer to run a Windows 8 buildbot. That said, I'm not sure if we are formally supporting Windows 8 yet or not. Actually, given the lack of a buildbot, I suppose the answer is "not" :)
msg192835 - (view) Author: Walter Prins (wprins) Date: 2013-07-10 20:41
What's the process for volunteering a buildbot? Email python-dev? I *might* volunteer to set one up...
msg192839 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-07-10 22:00
What information there is is here: http://wiki.python.org/moin/BuildBot. Antoine Pitrou is the current buildbot "master" and will issue you a password once you are set up, if you decide to do this. You can also talk to us on the #python-dev irc channel. Windows buildbots are the trickiest to get set up and running consistently.
msg230239 - (view) Author: David Bolen (db3l) * Date: 2014-10-29 20:05
I've just brought a Windows 8 buildbot online (bolen-windows8) and can confirm that this test does fail in the 3.4 and 3.x branches, and that it does so consistently even if I execute the steps interactively.
msg230240 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-10-29 20:08
FTR, the buildbot URL: http://buildbot.python.org/all/buildslaves/bolen-windows8
msg236379 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-02-21 18:00
Attached a patch to 3.5 that resolves this, and I'll backport to 3.4. I haven't got access to Windows 7 or 8 right now to test it, but it's fine on Vista without the patch and 8.1 with the patch. It'd be great if people could help check exactly which version of Windows changed the behaviour by running this code and posting their OS and whether the result is True (correct) or False (incorrect): from multiprocessing import Pipe a, b = Pipe() b.send_bytes(b'') a.poll() and a.poll()
msg236424 - (view) Author: Davin Potts (davin) * (Python committer) Date: 2015-02-23 02:04
Tested Steve's code snippet on Windows 7 64-bit without the patch on default (3.5) and got result: True Not knowing the full history here, I blindly tried on the same Win7 system with 2.7.8 and got a False. Looks like Richard's patches made in #12328 were only applied to 3.3.
msg236644 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-02-26 04:55
Thanks Davin. I got onto a Windows 8 machine and confirmed the behaviour changed there, so the version check in my patch is correct. Anyone opposed to the extra logic and version check?
msg236776 - (view) Author: Davin Potts (davin) * (Python committer) Date: 2015-02-27 16:12
Steve: FWIW, it looks like a good solution to me.
msg237057 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-03-02 16:06
New changeset 7401a28d3d41 by Steve Dower in branch '3.4': Issue #18382: Zero-length messages are consumed by ReadFile on Windows 8 and later https://hg.python.org/cpython/rev/7401a28d3d41 New changeset 6ccbcf1df7bd by Steve Dower in branch 'default': Issue #18382: Zero-length messages are consumed by ReadFile on Windows 8 and later https://hg.python.org/cpython/rev/6ccbcf1df7bd
History
Date User Action Args
2022-04-11 14:57:47 admin set github: 62582
2015-03-02 16:07:30 steve.dower set status: open -> closedresolution: fixedstage: patch review -> resolved
2015-03-02 16:06:58 python-dev set nosy: + python-devmessages: +
2015-02-28 16:34:17 steve.dower set assignee: steve.dowernosy: + zach.ware, tim.goldencomponents: + Library (Lib), Windows, - Extension Modulesstage: needs patch -> patch review
2015-02-27 16:12:47 davin set messages: +
2015-02-26 04:55:26 steve.dower set messages: +
2015-02-23 02:05:00 davin set messages: +
2015-02-22 19:45:59 davin set nosy: + davin
2015-02-21 18:00:54 steve.dower set files: + 18382_1.patchnosy: + steve.dowermessages: + keywords: + patch
2014-10-29 20:08:22 pitrou set stage: needs patchversions: + Python 3.5, - Python 3.3
2014-10-29 20:08:15 pitrou set nosy: + pitroumessages: +
2014-10-29 20:05:42 db3l set nosy: + db3lmessages: +
2013-07-10 22:00:03 r.david.murray set messages: +
2013-07-10 20:41:58 wprins set messages: +
2013-07-09 13:54:40 r.david.murray set nosy: + r.david.murraymessages: +
2013-07-06 21:41:02 wprins set messages: +
2013-07-06 15:44:02 sbt set nosy: + sbtmessages: +
2013-07-06 12:45:37 wprins create