classification
Title: [asyncio] test failure when the platform lacks a functional sem_open()
Type: behavior Stage: resolved
Components: asyncio, Tests Versions: Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: xdegaye, yselivanov
Priority: normal Keywords: patch

Created on 2017-11-24 17:02 by xdegaye, last changed 2017-11-26 09:32 by xdegaye. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 4559 merged xdegaye, 2017-11-25 10:56
Messages (3)
msg306906 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2017-11-24 17:02
test_get_event_loop_new_process fails on Android API 24 with the error:

======================================================================
ERROR: test_get_event_loop_new_process (test.test_asyncio.test_events.EPollEventLoopTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.python/lib/python3.7/multiprocessing/synchronize.py", line 29, in <module>
    from _multiprocessing import SemLock, sem_unlink
ImportError: cannot import name 'sem_unlink' from '_multiprocessing' (/data/local/tmp/python/lib/pyt
hon3.7/lib-dynload/_multiprocessing.cpython-37dm.so)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/sdcard/org.python/lib/python3.7/test/test_asyncio/test_events.py", line 2239, in test_get_e
vent_loop_new_process
    self.loop.run_until_complete(main()),
  File "/sdcard/org.python/lib/python3.7/asyncio/base_events.py", line 466, in run_until_complete
    return future.result()
  File "/sdcard/org.python/lib/python3.7/test/test_asyncio/test_events.py", line 2230, in main
    pool = concurrent.futures.ProcessPoolExecutor()
  File "/sdcard/org.python/lib/python3.7/concurrent/futures/process.py", line 410, in __init__
    self._call_queue = mp_context.Queue(queue_size)
  File "/sdcard/org.python/lib/python3.7/multiprocessing/context.py", line 102, in Queue
    return Queue(maxsize, ctx=self.get_context())
  File "/sdcard/org.python/lib/python3.7/multiprocessing/queues.py", line 42, in __init__
    self._rlock = ctx.Lock()
  File "/sdcard/org.python/lib/python3.7/multiprocessing/context.py", line 66, in Lock
    from .synchronize import Lock
  File "/sdcard/org.python/lib/python3.7/multiprocessing/synchronize.py", line 34, in <module>
    " function, see issue 3770.")
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required sync
hronization primitives needed will not function, see issue 3770.
msg306907 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2017-11-24 17:06
See also the related issues:
#3770: test_multiprocessing fails on systems with HAVE_SEM_OPEN=0
#28668: instanciation of multiprocessing.Queue raises ImportError in test_logging
#26924: android: test_concurrent_futures fails
msg306998 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2017-11-26 09:31
New changeset a6fba9b827e395fc9583c07bc2d15cd11f684439 by xdegaye in branch 'master':
bpo-32126: Skip asyncio test when sem_open() is not functional (GH-4559)
https://github.com/python/cpython/commit/a6fba9b827e395fc9583c07bc2d15cd11f684439
History
Date User Action Args
2017-12-09 15:42:06xdegayelinkissue26865 dependencies
2017-11-26 09:32:18xdegayesetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2017-11-26 09:31:51xdegayesetmessages: + msg306998
2017-11-25 10:56:04xdegayesetkeywords: + patch
stage: needs patch -> patch review
pull_requests: + pull_request4487
2017-11-24 17:06:12xdegayesetmessages: + msg306907
2017-11-24 17:02:05xdegayecreate