This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Regression - Concurrent Futures
Type: Stage: resolved
Components: Versions: Python 3.8, Python 3.7
process
Status: closed Resolution: duplicate
Dependencies: Superseder: concurrent.futures.ProcessPoolExecutor does not work in venv on Windows
View: 35797
Assigned To: Nosy List: cheryl.sabella, jonathan-lp
Priority: normal Keywords:

Created on 2019-02-26 11:34 by jonathan-lp, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (5)
msg336649 - (view) Author: Jonathan (jonathan-lp) Date: 2019-02-26 11:34
I'm using Concurrent Futures to run some work in parallel (futures.ProcessPoolExecutor) on windows 7 x64. The code works fine in 3.6.3, and 3.5.x before that.
I've just upgraded to 3.7.2 and it's giving me these errors:

Process SpawnProcess-6:
Traceback (most recent call last):
  File "c:\_libs\Python37\lib\multiprocessing\process.py", line 297, in _bootstrap
    self.run()
  File "c:\_libs\Python37\lib\multiprocessing\process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "c:\_libs\Python37\lib\concurrent\futures\process.py", line 226, in _process_worker
    call_item = call_queue.get(block=True)
  File "c:\_libs\Python37\lib\multiprocessing\queues.py", line 93, in get
    with self._rlock:
  File "c:\_libs\Python37\lib\multiprocessing\synchronize.py", line 95, in __enter__
    return self._semlock.__enter__()
PermissionError: [WinError 5] Access is denied

If I switch back to the 3.6.3 venv it works fine again.
msg336650 - (view) Author: Jonathan (jonathan-lp) Date: 2019-02-26 11:36
There's also this error too:

Traceback (most recent call last):
  File "c:\_libs\Python37\lib\multiprocessing\process.py", line 297, in _bootstrap
    self.run()
  File "c:\_libs\Python37\lib\multiprocessing\process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "c:\_libs\Python37\lib\concurrent\futures\process.py", line 226, in _process_worker
    call_item = call_queue.get(block=True)
  File "c:\_libs\Python37\lib\multiprocessing\queues.py", line 94, in get
    res = self._recv_bytes()
  File "c:\_libs\Python37\lib\multiprocessing\synchronize.py", line 98, in __exit__
    return self._semlock.__exit__(*args)
OSError: [WinError 6] The handle is invalid
msg336652 - (view) Author: Cheryl Sabella (cheryl.sabella) * (Python committer) Date: 2019-02-26 11:46
Thank you for the report.  Please add a script that contains the least amount of code that would replicate the error.  Thanks!

From the devguide:
> last but not least, you have to describe the problem in detail, including what you expected to happen, what did happen, and how to replicate the problem in the Comment field. Be sure to include whether any extension modules were involved, and what hardware and software platform you were using (including version information as appropriate).
msg336654 - (view) Author: Jonathan (jonathan-lp) Date: 2019-02-26 11:51
The "ProcessPoolExecutor Example" on this page breaks for me:

https://docs.python.org/3/library/concurrent.futures.html
msg336666 - (view) Author: Cheryl Sabella (cheryl.sabella) * (Python committer) Date: 2019-02-26 13:33
Thank you.  I just tried running the example and it worked OK for me in the 3.8 master build.  I believe your report is a duplicate of issue 35797.
History
Date User Action Args
2022-04-11 14:59:11adminsetgithub: 80301
2019-02-26 13:33:29cheryl.sabellasetstatus: open -> closed
superseder: concurrent.futures.ProcessPoolExecutor does not work in venv on Windows
messages: + msg336666

resolution: duplicate
stage: test needed -> resolved
2019-02-26 11:51:39jonathan-lpsetmessages: + msg336654
2019-02-26 11:46:51cheryl.sabellasetversions: + Python 3.8
nosy: + cheryl.sabella

messages: + msg336652

stage: test needed
2019-02-26 11:36:41jonathan-lpsetmessages: + msg336650
2019-02-26 11:34:43jonathan-lpcreate