You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test_venv failure when executed by test_multiprocessing and the platform lacks a functional sem_open() #80523
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2019-09-24.12:06:09.204>created_at=<Date2019-03-18.10:02:39.890>labels= ['3.8', 'type-bug', 'tests']
title='test_venv failure when executed by test_multiprocessing and the platform lacks a functional sem_open()'updated_at=<Date2019-09-24.12:06:09.203>user='https://github.com/xdegaye'
Are you sure that multiprocessing is the issue? On bpo-35978, the test fails because of venv, not because of multiprocessing. Can it be the same issue?
xdegaye commented on Mar 18, 2019
xdegayemannequin
MannequinAuthor
More actions
You are right, this is a duplicate of bpo-35978.
Closing as duplicate.
changed the title [-]test_multiprocessing fails on platforms lacking a functioning sem_open[/-][+]test_venv fails on Android with clang[/+]on Mar 18, 2019
xdegaye commented on Mar 18, 2019
xdegayemannequin
MannequinAuthor
More actions
Too hasty again, remembering now why I linked this failure with sem_open :-(
Re-opening this issue as the test does fail because Android lacks a functioning sem_open implementation. And tagging this issue as a dependency of bpo-35978 as we should wait for the solution on bpo-35978 before fixing this one, if it is still needed.
The link between the failure and sem_open shows up when running the python statements of test_multiprocessing() in the interpreter on Android:
generic_x86_64:/data/local/tmp/python $ python
Python 3.8.0a2+ (heads/bpo-36341-dirty:41f0b78cbf, Mar 18 2019, 10:43:05)
[Clang 3.8.275480 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from multiprocessing import Pool
>>> print(Pool(1).apply_async("Python".lower).get(3))
Traceback (most recent call last):
File "/data/local/tmp/python/lib/python3.8/multiprocessing/synchronize.py", line 28, in <module>
from _multiprocessing import SemLock, sem_unlink
ImportError: cannot import name 'SemLock' from '_multiprocessing' (/data/local/tmp/python/lib/python3.8/lib-dynload/_multiprocessing.cpython-38dm.so)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/data/local/tmp/python/lib/python3.8/multiprocessing/context.py", line 118, in Pool
return Pool(processes, initializer, initargs, maxtasksperchild,
File "/data/local/tmp/python/lib/python3.8/multiprocessing/pool.py", line 166, in __init__
self._setup_queues()
File "/data/local/tmp/python/lib/python3.8/multiprocessing/pool.py", line 300, in _setup_queues
self._inqueue = self._ctx.SimpleQueue()
File "/data/local/tmp/python/lib/python3.8/multiprocessing/context.py", line 112, in SimpleQueue
return SimpleQueue(ctx=self.get_context())
File "/data/local/tmp/python/lib/python3.8/multiprocessing/queues.py", line 336, in __init__
self._rlock = ctx.Lock()
File "/data/local/tmp/python/lib/python3.8/multiprocessing/context.py", line 66, in Lock
from .synchronize import Lock
File "/data/local/tmp/python/lib/python3.8/multiprocessing/synchronize.py", line 30, in <module>
raise ImportError("This platform lacks a functioning sem_open" +
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.
>>>
I guess my confusion comes from the fact that test_venv in isolation is a totally fine test suite, it just fails when test_multiprocessing runs it due to something multiprocessing-related.
I've tried tweaking the title to reflect the fact that it's a test_venv failure triggered by test_multiprocessing.
changed the title [-]test_venv failure when the platform lacks a functional sem_open()[/-][+]test_venv failure when executed by test_multiprocessing and the platform lacks a functional sem_open()[/+]on Mar 20, 2019
xdegaye commented on Mar 23, 2019
xdegayemannequin
MannequinAuthor
More actions
Removing the bpo-35978 dependency as changeset 8bba81f that fixes bpo-35978 only skips test_multiprocessing when test_venv is run from a venv.
Activity
xdegaye commentedon Mar 18, 2019
test_multiprocessing fails on platforms lacking a functioning sem_open (Android for example) with:
======================================================================
ERROR: test_multiprocessing (test.test_venv.BasicTest)
----------------------------------------------------------------------
vstinner commentedon Mar 18, 2019
Are you sure that multiprocessing is the issue? On bpo-35978, the test fails because of venv, not because of multiprocessing. Can it be the same issue?
xdegaye commentedon Mar 18, 2019
You are right, this is a duplicate of bpo-35978.
Closing as duplicate.
[-]test_multiprocessing fails on platforms lacking a functioning sem_open[/-][+]test_venv fails on Android with clang[/+]xdegaye commentedon Mar 18, 2019
Too hasty again, remembering now why I linked this failure with sem_open :-(
Re-opening this issue as the test does fail because Android lacks a functioning sem_open implementation. And tagging this issue as a dependency of bpo-35978 as we should wait for the solution on bpo-35978 before fixing this one, if it is still needed.
The link between the failure and sem_open shows up when running the python statements of test_multiprocessing() in the interpreter on Android:
brettcannon commentedon Mar 19, 2019
So this is a test_multiprocessing issue? If it is then the title is misleading.
xdegaye commentedon Mar 20, 2019
It is a test_venv issue related to bpo-32126 and also related to the other issues listed in bpo-32126.
Changing the title as it is ambiguous indeed.
check_output() in test_venv.py does not print the full stack trace as it is done by test_asyncio in bpo-32126, is this another issue ?
[-]test_venv fails on Android with clang[/-][+]test_venv failure when the platform lacks a functional sem_open()[/+]brettcannon commentedon Mar 20, 2019
I guess my confusion comes from the fact that test_venv in isolation is a totally fine test suite, it just fails when test_multiprocessing runs it due to something multiprocessing-related.
I've tried tweaking the title to reflect the fact that it's a test_venv failure triggered by test_multiprocessing.
[-]test_venv failure when the platform lacks a functional sem_open()[/-][+]test_venv failure when executed by test_multiprocessing and the platform lacks a functional sem_open()[/+]xdegaye commentedon Mar 23, 2019
Removing the bpo-35978 dependency as changeset 8bba81f that fixes bpo-35978 only skips test_multiprocessing when test_venv is run from a venv.
miss-islington commentedon May 30, 2019
New changeset 5437ccc by Miss Islington (bot) (xdegaye) in branch 'master':
bpo-36342: Fix test_multiprocessing in test_venv (GH-12513)
5437ccc
vstinner commentedon Sep 24, 2019
It seems like this issue has been fixed in the master branch. Reopen the issue if you consider that the fix should be backported.