pybind / pybind/pybind11

[BUG] openSUSE Leap 15.3 test_threading fails intermittently

Open
#2,849 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
18k
Forks
2.3k
Avg merge
5d 17h
Merged PRs (30d)
10

Description

While updating the openSUSE package from 2.5.0 to 2.6.2, I encountered the following on the openSUSE Leap 15.3 builds which use Python 3.6. The next build passed.

[  189s] platform linux -- Python 3.6.12, pytest-6.1.2, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3
[  189s] cachedir: .pytest_cache
[  189s] rootdir: /home/abuild/rpmbuild/BUILD/pybind11-2.6.2, configfile: setup.cfg
[  192s] collecting ... collected 422 items / 2 deselected / 1 skipped / 419 selected
....
[  200s] tests/test_iostream.py::test_redirect_both PASSED                        [ 44%]
[  200s] tests/test_iostream.py::test_threading Fatal Python error: Aborted
[  200s] 
[  200s] Current thread 0x00007f898f3bd740 (most recent call first):
[  200s]   File "/home/abuild/rpmbuild/BUILD/pybind11-2.6.2/tests/test_iostream.py", line 241 in test_threading
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/python.py", line 184 in pytest_pyfunc_call
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/python.py", line 1627 in runtest
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 163 in pytest_runtest_call
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 256 in <lambda>
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 310 in from_call
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 256 in call_runtest_hook
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 216 in call_and_report
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 127 in runtestprotocol
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/runner.py", line 110 in pytest_runtest_protocol
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/main.py", line 338 in pytest_runtestloop
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/main.py", line 313 in _main
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/main.py", line 257 in wrap_session
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/main.py", line 306 in pytest_cmdline_main
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/callers.py", line 187 in _multicall
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 87 in <lambda>
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/manager.py", line 93 in _hookexec
[  200s]   File "/usr/lib/python3.6/site-packages/pluggy/hooks.py", line 286 in __call__
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/config/__init__.py", line 165 in main
[  200s]   File "/usr/lib/python3.6/site-packages/_pytest/config/__init__.py", line 187 in console_main
[  200s]   File "/usr/bin/pytest-3.6", line 11 in <module>
[  200s] /var/tmp/rpm-tmp.wIWbxD: line 41:  2621 Aborted                 PYTHONPATH=${PYTHONPATH:+$PYTHONPATH:}/home/abuild/rpmbuild/BUILDROOT/python-pybind11-2.6.2-lp153.35.1.x86_64/usr/lib/python3.6/site-packages PYTHONDONTWRITEBYTECODE=1 pytest-3.6 --ignore=_build. --ignore=_build.python3 -v -k 'not (tests_build_wheel or tests_build_global_wheel)'

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with tests/test_iostream.py, especially test_threading at line 241, and reproduce it on openSUSE Leap 15.3 with Python 3.6. Compare intermittent aborted runs with the passing build and inspect the iostream threading behavior involved. Done means the test no longer aborts intermittently on the reported environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.