classification
Title: NetBSD: do not use POSIX semaphores
Type: behavior Stage: patch review
Components: Interpreter Core Versions: Python 3.11
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: serhiy.storchaka, wiz
Priority: normal Keywords: patch

Created on 2021-12-11 10:31 by wiz, last changed 2022-01-18 22:48 by wiz.

Pull Requests
URL Status Linked Edit
PR 30047 merged wiz, 2021-12-11 10:37
Messages (4)
msg408291 - (view) Author: Thomas Klausner (wiz) * Date: 2021-12-11 10:31
On NetBSD by default, the following tests do not finish in > 1h:

1:07:13 load avg: 0.00 running: test_compileall (1 hour 7 min), test_multiprocessing_fork (1 hour 7 min), test_concurrent_futures (1 hour 6 min)

Defining HAVE_BROKEN_POSIX_SEMAPHORES fixes this, and they finish:

0:00:32 load avg: 10.63 [408/427/17] test_compileall passed ...
...
0:02:37 load avg: 3.04 [427/427/22] test_concurrent_futures passed (2 min 33 sec)

The last one fails:
test_multiprocessing_fork

with most of the subtests failing like this:

ERROR: test_shared_memory_SharedMemoryServer_ignores_sigint (test.test_multiprocessing_fork.WithProcessesTestSharedMemory)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/scratch/lang/python310/work/Python-3.10.1/Lib/test/_test_multiprocessing.py", line 4006, in test_shared_memory_SharedMemoryServer_ignores_sigint
    sl = smm.ShareableList(range(10))
  File "/scratch/lang/python310/work/Python-3.10.1/Lib/multiprocessing/managers.py", line 1372, in ShareableList
    sl = shared_memory.ShareableList(sequence)
  File "/scratch/lang/python310/work/Python-3.10.1/Lib/multiprocessing/shared_memory.py", line 327, in __init__
    self.shm = SharedMemory(name, create=True, size=requested_size)
  File "/scratch/lang/python310/work/Python-3.10.1/Lib/multiprocessing/shared_memory.py", line 92, in __init__
    self._fd = _posixshmem.shm_open(
OSError: [Errno 86] Not supported: '/psm_b1ec903a'

I think this is a separate issue, so I'd like to define HAVE_BROKEN_POSIX_SEMAPHORES for now.

This has been done in pkgsrc since at least python 2.7 (in 2011), I haven't dug deeper.
msg410581 - (view) Author: Thomas Klausner (wiz) * Date: 2022-01-14 18:02
ping - this patch needs a review
msg410888 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2022-01-18 20:38
New changeset 60ceedbdd5b5fb22803039a59954798d931f659a by Thomas Klausner in branch 'main':
bpo-46045: Do not use POSIX semaphores on NetBSD (GH-30047)
https://github.com/python/cpython/commit/60ceedbdd5b5fb22803039a59954798d931f659a
msg410910 - (view) Author: Thomas Klausner (wiz) * Date: 2022-01-18 22:48
Thanks for merging this, @serhiy.storchaka!
History
Date User Action Args
2022-01-18 22:48:10wizsetmessages: + msg410910
2022-01-18 20:38:39serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg410888
2022-01-14 18:02:15wizsetmessages: + msg410581
2021-12-11 10:37:46wizsetkeywords: + patch
stage: patch review
pull_requests: + pull_request28272
2021-12-11 10:31:04wizcreate