[New-bugs-announce] [issue33329] test_multiprocessing_fork, _forkserver, _spawn hangs: ValueError: signal number 32 out of range
Miro Hrončok
report at bugs.python.org
Sun Apr 22 04:07:51 EDT 2018
New submission from Miro Hrončok <miro at hroncok.cz>:
Originally reported in https://bugs.python.org/issue31463
This started to bother us in Fedora rawhide for various Python versions, so chances are something changed on the system level.
# python3.7 -m test.regrtest test_multiprocessing_fork
Run tests sequentially
0:00:00 load avg: 1.24 [1/1] test_multiprocessing_fork
/usr/lib64/python3.7/multiprocessing/semaphore_tracker.py:55: UserWarning: semaphore_tracker: process died unexpectedly, relaunching. Some semaphores might leak.
warnings.warn('semaphore_tracker: process died unexpectedly, '
Exception in thread Thread-26:
Traceback (most recent call last):
File "/usr/lib64/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib64/python3.7/multiprocessing/resource_sharer.py", line 139, in _serve
signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG))
File "/usr/lib64/python3.7/signal.py", line 60, in pthread_sigmask
sigs_set = _signal.pthread_sigmask(how, mask)
ValueError: signal number 32 out of range
(hangs...)
^CProcess Process-184:
Traceback (most recent call last):
File "/usr/lib64/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/usr/lib64/python3.7/multiprocessing/process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib64/python3.7/test/_test_multiprocessing.py", line 3328, in child_access
w = conn.recv()
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 960, in rebuild_connection
fd = df.detach()
File "/usr/lib64/python3.7/multiprocessing/resource_sharer.py", line 57, in detach
with _resource_sharer.get_connection(self._id) as conn:
File "/usr/lib64/python3.7/multiprocessing/resource_sharer.py", line 87, in get_connection
c = Client(address, authkey=process.current_process().authkey)
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 498, in Client
answer_challenge(c, authkey)
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 741, in answer_challenge
message = connection.recv_bytes(256) # reject large message
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 216, in recv_bytes
buf = self._recv_bytes(maxlength)
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 407, in _recv_bytes
buf = self._recv(4)
File "/usr/lib64/python3.7/multiprocessing/connection.py", line 379, in _recv
chunk = read(handle, remaining)
KeyboardInterrupt
Warning -- multiprocessing.process._dangling was modified by test_multiprocessing_fork
Before: <_weakrefset.WeakSet object at 0x7f2abd5f6d30>
After: <_weakrefset.WeakSet object at 0x7f2abd5f6128>
Warning -- threading._dangling was modified by test_multiprocessing_fork
Before: <_weakrefset.WeakSet object at 0x7f2abd5f66d8>
After: <_weakrefset.WeakSet object at 0x7f2abc835048>
Test suite interrupted by signal SIGINT.
1 test omitted:
test_multiprocessing_fork
Total duration: 3 min 43 sec
Tests result: INTERRUPTED
--------------------------------
# python3.7 -m test.regrtest test_multiprocessing_forkserver
Run tests sequentially
0:00:00 load avg: 1.00 [1/1] test_multiprocessing_forkserver
Exception in thread Thread-26:
Traceback (most recent call last):
File "/usr/lib64/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib64/python3.7/multiprocessing/resource_sharer.py", line 139, in _serve
signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG))
File "/usr/lib64/python3.7/signal.py", line 60, in pthread_sigmask
sigs_set = _signal.pthread_sigmask(how, mask)
ValueError: signal number 32 out of range
(hangs...)
^CProcess Process-184:
Traceback (most recent call last):
...
KeyboardInterrupt
Warning -- multiprocessing.process._dangling was modified by test_multiprocessing_forkserver
Before: <_weakrefset.WeakSet object at 0x7f0323ecde10>
After: <_weakrefset.WeakSet object at 0x7f0323ecd208>
Warning -- threading._dangling was modified by test_multiprocessing_forkserver
Before: <_weakrefset.WeakSet object at 0x7f0323ecd7b8>
After: <_weakrefset.WeakSet object at 0x7f0323ecddd8>
Test suite interrupted by signal SIGINT.
1 test omitted:
test_multiprocessing_forkserver
Total duration: 55 sec
Tests result: INTERRUPTED
--------------------------------
# python3.7 -m test.regrtest test_multiprocessing_spawn
Run tests sequentially
0:00:00 load avg: 1.49 [1/1] test_multiprocessing_spawn
Exception in thread Thread-26:
Traceback (most recent call last):
File "/usr/lib64/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib64/python3.7/multiprocessing/resource_sharer.py", line 139, in _serve
signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG))
File "/usr/lib64/python3.7/signal.py", line 60, in pthread_sigmask
sigs_set = _signal.pthread_sigmask(how, mask)
ValueError: signal number 32 out of range
(hangs...)
^CProcess Process-184:
Traceback (most recent call last):
...
KeyboardInterrupt
Warning -- multiprocessing.process._dangling was modified by test_multiprocessing_spawn
Before: <_weakrefset.WeakSet object at 0x7fb2134a9dd8>
After: <_weakrefset.WeakSet object at 0x7fb2134a91d0>
Warning -- threading._dangling was modified by test_multiprocessing_spawn
Before: <_weakrefset.WeakSet object at 0x7fb2134a9780>
After: <_weakrefset.WeakSet object at 0x7fb2134a9da0>
Test suite interrupted by signal SIGINT.
1 test omitted:
test_multiprocessing_spawn
Total duration: 54 sec
Tests result: INTERRUPTED
--------------------------------
Happens with all 3 tests on 3.4 to 3.7.
To test in docker, one can do:
$ docker run -ti fedora:rawhide /bin/bash
# dnf update
# dnf install python37 # or python3-test for 3.6, or python35, python34
Note that without `dnf update`, the tests work for me (for now) so attaching a full package diff that "starts" this.
----------
components: Tests
files: upgraded_packages.txt
messages: 315590
nosy: hroncok
priority: normal
severity: normal
status: open
title: test_multiprocessing_fork, _forkserver, _spawn hangs: ValueError: signal number 32 out of range
versions: Python 3.4, Python 3.5, Python 3.6, Python 3.7
Added file: https://bugs.python.org/file47546/upgraded_packages.txt
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue33329>
_______________________________________
More information about the New-bugs-announce
mailing list