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: test_thousand and compileall hangs on riscv64
Type: behavior Stage:
Components: Library (Lib) Versions: Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: felixonmars
Priority: normal Keywords:

Created on 2020-07-20 12:56 by felixonmars, last changed 2022-04-11 14:59 by admin.

Files
File name Uploaded Description Edit
configure.output felixonmars, 2020-07-20 12:56
Messages (1)
msg374005 - (view) Author: Felix Yan (felixonmars) * Date: 2020-07-20 12:56
In my riscv64 build, test_thousand (test.test_multiprocessing_forkserver.WithProcessesTestBarrier) always hangs on some locking thing, and the compileall part during installation hangs the same way. I am not sure if it's toolchain related or something else, though.

Some relevant versions:

Linux riscv64-unknown-linux-gnu
Python 3.8.4
glibc 2.31
gcc 10.1.0

configure switches:

  ./configure --prefix=/usr \
              --enable-shared \
              --with-computed-gotos \
              --enable-optimizations \
              --with-lto \
              --enable-ipv6 \
              --with-system-expat \
              --with-dbmliborder=gdbm:ndbm \
              --with-system-ffi \
              --with-system-libmpdec \
              --enable-loadable-sqlite-extensions \
              --without-ensurepip

When Ctrl-C:

test_thousand (test.test_multiprocessing_forkserver.WithProcessesTestBarrier) ... ^CProcess Process-1305:
Traceback (most recent call last):
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/build/python/src/Python-3.8.4/Lib/test/_test_multiprocessing.py", line 1970, in _test_thousand_f
    barrier.wait()
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 610, in wait
    self._enter() # Block while the barrier drains.
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 631, in _enter
    self._cond.wait()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/synchronize.py", line 261, in wait
    return self._wait_semaphore.acquire(True, timeout)
KeyboardInterrupt
Process Process-1304:
Traceback (most recent call last):
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/build/python/src/Python-3.8.4/Lib/test/_test_multiprocessing.py", line 1970, in _test_thousand_f
    barrier.wait()
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 610, in wait
    self._enter() # Block while the barrier drains.
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 631, in _enter
    self._cond.wait()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/synchronize.py", line 261, in wait
    return self._wait_semaphore.acquire(True, timeout)
KeyboardInterrupt
Process Process-1306:
Traceback (most recent call last):
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/build/python/src/Python-3.8.4/Lib/test/_test_multiprocessing.py", line 1970, in _test_thousand_f
    barrier.wait()
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 610, in wait
    self._enter() # Block while the barrier drains.
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 631, in _enter
    self._cond.wait()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/synchronize.py", line 261, in wait
    return self._wait_semaphore.acquire(True, timeout)
KeyboardInterrupt
Process Process-1302:
Traceback (most recent call last):
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/build/python/src/Python-3.8.4/Lib/test/_test_multiprocessing.py", line 1970, in _test_thousand_f
    barrier.wait()
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 610, in wait
    self._enter() # Block while the barrier drains.
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 631, in _enter
    self._cond.wait()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/synchronize.py", line 261, in wait
    return self._wait_semaphore.acquire(True, timeout)
KeyboardInterrupt
Process Process-1303:
Traceback (most recent call last):
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/build/python/src/Python-3.8.4/Lib/test/_test_multiprocessing.py", line 1970, in _test_thousand_f
    barrier.wait()
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 610, in wait
    self._enter() # Block while the barrier drains.
  File "/build/python/src/Python-3.8.4/Lib/threading.py", line 631, in _enter
    self._cond.wait()
  File "/build/python/src/Python-3.8.4/Lib/multiprocessing/synchronize.py", line 261, in wait
    return self._wait_semaphore.acquire(True, timeout)
KeyboardInterrupt
Warning -- multiprocessing.process._dangling was modified by test_multiprocessing_forkserver
  Before: set()
  After:  {<weakref at 0x42d7274db0; to 'Process' at 0x42d608aaf0>, <weakref at 0x42d72746d0; to 'Process' at 0x42d608af10>, <weakref at 0x42d7274400; to 'Process' at 0x42d608a9a0>, <weakref at 0x42d7274d10; to 'Process' at 0x42d608abb0>, <weakref at 0x42d7274270; to 'Process' at 0x42d608a5e0>}

test_multiprocessing_fork passed in 1 min 46 sec

== Tests result: FAILURE, INTERRUPTED ==
Test suite interrupted by signal SIGINT.
History
Date User Action Args
2022-04-11 14:59:33adminsetgithub: 85518
2020-07-20 12:56:10felixonmarscreate