classification
Title: Python 3.8 Segfult with Bandersnatch pytest Suite
Type: crash Stage: resolved
Components: Versions: Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: cooperlees, eamanu, terry.reedy, vstinner, xtreak
Priority: normal Keywords:

Created on 2019-09-14 14:47 by cooperlees, last changed 2019-10-24 08:40 by vstinner. This issue is now closed.

Messages (13)
msg352432 - (view) Author: Cooper Lees (cooperlees) * Date: 2019-09-14 14:47
Haven't done research but bandersnatch's (https://github.com/pypa/bandersnatch) Unit tests pass in 3.7 and cause Python to Segmentation Fault in Python 3.8.0b4+.

```
py38 run-test: commands[0] | coverage run -m pytest
============================= test session starts ==============================
platform linux -- Python 3.8.0b4+, pytest-5.1.2, py-1.8.0, pluggy-0.13.0
cachedir: .tox/py38/.pytest_cache
rootdir: /home/travis/build/pypa/bandersnatch, inifile: pytest.ini
plugins: timeout-1.3.3
Fatal Python error: Segmentation fault
```

Full failure on Travis CI: https://travis-ci.org/pypa/bandersnatch/jobs/584973434
msg352433 - (view) Author: Cooper Lees (cooperlees) * Date: 2019-09-14 14:48
Seems to be with coverage actually.

```
ERROR: InvocationError for command /home/travis/build/pypa/bandersnatch/.tox/py38/bin/coverage run -m pytest (exited with code -11)
```
msg352434 - (view) Author: Cooper Lees (cooperlees) * Date: 2019-09-14 14:58
Adding in Nightly Passed: https://travis-ci.org/pypa/bandersnatch/jobs/584977510

Current 3.8 beta still failing: https://travis-ci.org/pypa/bandersnatch/builds/584977503

So please just close if the bug was known etc. and I'll just live with the failing test until the next 3.8 comes out.
msg352916 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-09-21 00:57
If you mean that the crash no longer occurs with current 3.8.b4+ in the repository, then you should close as 'out-of-date.
msg352984 - (view) Author: Cooper Lees (cooperlees) * Date: 2019-09-22 17:02
Happy to close, just was not 100% sure if the fix is merged into the 3.8 branch. I mainly opened this bug to ensure that has been done.
msg352986 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-09-22 18:19
Victor, am I correct in thinking that this should be closed as either intermittent, lacking in sufficient information for us to do anything, or possibly a 3rd party issue?
msg353018 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-09-23 14:31
The Travis CI job contains the Python traceback where the bug occurs.

It seems like the crash occurs at multidict/__init__.py:23 which imports multidict._multidict which is a C extension.

> Full failure on Travis CI: https://travis-ci.org/pypa/bandersnatch/jobs/584973434

$ pip --version

pip 19.2.3 from /home/travis/virtualenv/python3.8-dev/lib/python3.8/site-packages/pip (python 3.8)
install.1

1.02s$ pip install --upgrade pip setuptools
install.2

4.44s$ pip install -r requirements.txt -r requirements_test.txt
install.3

1.48s$ pip install .

12.98s$ python test_runner.py

GLOB sdist-make: /home/travis/build/pypa/bandersnatch/setup.py

py38 create: /home/travis/build/pypa/bandersnatch/.tox/py38

py38 installdeps: -rrequirements_test.txt

py38 inst: /home/travis/build/pypa/bandersnatch/.tox/.tmp/package/1/bandersnatch-3.4.1.zip

py38 installed: aiohttp==3.6.0,apipkg==1.5,appdirs==1.4.3,async-timeout==3.0.1,atomicwrites==1.3.0,attrs==19.1.0,bandersnatch==3.4.1,black==19.3b0,certifi==2019.9.11,chardet==3.0.4,Click==7.0,codecov==2.0.15,coverage==4.5.4,execnet==1.7.1,filelock==3.0.12,freezegun==0.3.12,idna==2.8,more-itertools==7.2.0,multidict==4.5.2,packaging==19.1,pluggy==0.13.0,py==1.8.0,pyparsing==2.4.2,pytest==5.1.2,pytest-cache==1.0,pytest-timeout==1.3.3,python-dateutil==2.8.0,requests==2.22.0,six==1.12.0,toml==0.10.0,tox==3.14.0,urllib3==1.25.3,virtualenv==16.7.5,wcwidth==0.1.7,xmlrpc2==0.3.1,yarl==1.3.0

py38 run-test-pre: PYTHONHASHSEED='690490585'

py38 run-test: commands[0] | coverage run -m pytest

============================= test session starts ==============================

platform linux -- Python 3.8.0b4+, pytest-5.1.2, py-1.8.0, pluggy-0.13.0

cachedir: .tox/py38/.pytest_cache

rootdir: /home/travis/build/pypa/bandersnatch, inifile: pytest.ini

plugins: timeout-1.3.3

Fatal Python error: Segmentation fault

Current thread 0x00007fabb284a700 (most recent call first):

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap_external>", line 1109 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/multidict/__init__.py", line 23 in <module>

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap_external>", line 783 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/aiohttp/hdrs.py", line 6 in <module>

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap_external>", line 783 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap>", line 1042 in _handle_fromlist

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/aiohttp/__init__.py", line 5 in <module>

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap_external>", line 783 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/bandersnatch/verify.py", line 14 in <module>

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap_external>", line 783 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/bandersnatch/main.py", line 17 in <module>

  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed

  File "<frozen importlib._bootstrap_external>", line 783 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "/home/travis/build/pypa/bandersnatch/src/bandersnatch/tests/test_main.py", line 10 in <module>

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/assertion/rewrite.py", line 140 in exec_module

  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked

  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 991 in _find_and_load

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/py/_path/local.py", line 701 in pyimport

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/python.py", line 501 in _importtestmodule

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/python.py", line 433 in _getobj

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/python.py", line 256 in obj

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/python.py", line 449 in _inject_setup_module_fixture

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/python.py", line 436 in collect

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/runner.py", line 247 in <lambda>

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/runner.py", line 220 in from_call

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/runner.py", line 247 in pytest_make_collect_report

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/manager.py", line 83 in <lambda>

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/manager.py", line 92 in _hookexec

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/runner.py", line 363 in collect_one_node

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 701 in genitems

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 476 in _perform_collect

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 437 in perform_collect

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 244 in pytest_collection

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/manager.py", line 83 in <lambda>

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/manager.py", line 92 in _hookexec

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 234 in _main

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 191 in wrap_session

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/main.py", line 228 in pytest_cmdline_main

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/manager.py", line 83 in <lambda>

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/manager.py", line 92 in _hookexec

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in __call__

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/_pytest/config/__init__.py", line 78 in main

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/pytest.py", line 101 in <module>

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/coverage/execfile.py", line 192 in run_python_file

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/coverage/execfile.py", line 122 in run_python_module

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/coverage/cmdline.py", line 627 in do_run

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/coverage/cmdline.py", line 491 in command_line

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/lib/python3.8/site-packages/coverage/cmdline.py", line 756 in main

  File "/home/travis/build/pypa/bandersnatch/.tox/py38/bin/coverage", line 10 in <module>

ERROR: InvocationError for command /home/travis/build/pypa/bandersnatch/.tox/py38/bin/coverage run -m pytest (exited with code -11)
msg353019 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-09-23 14:33
> Victor, am I correct in thinking that this should be closed as either intermittent, lacking in sufficient information for us to do anything, or possibly a 3rd party issue?

It can be a Python 3.8 or a bug in third party code. I suggest to attempt to reproduce the bug in gdb to collect more info about this crash.
msg353076 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2019-09-24 11:43
I am not sure about the difference between python 3.8-dev and nightly . The pipelines seem to have same configuration. The version on both pipelines is 3.8.0b4+ and the nightly build passes : https://travis-ci.org/pypa/bandersnatch/jobs/588664064 . Maybe getting the exact commit hash for the python version might help here in trying to replicate the issue under the environment.
msg353077 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-09-24 11:57
I suggest to wait one or two weeks, and if the bug doesn't reoccur: simply close the issue.
msg353091 - (view) Author: Cooper Lees (cooperlees) * Date: 2019-09-24 13:17
https://docs.travis-ci.com/user/languages/python/ make no mention of the difference between "3.8-dev" and "nightly". I'd expect it to be latest released 3.8 alpha/beta and Trunk (or possibly trunk on 3.8 branch) respectively.

Have reached out via Twitter (unable to see a contact anywhere on their website) to see if we can get clarity: https://twitter.com/cooperlees/status/1176485344553754624
msg355300 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2019-10-24 08:24
It seems now bandersnatch is tested with python 3.8.0 stable release and passes : https://travis-ci.org/pypa/bandersnatch/builds/599806554 . @cooperlees, can you please confirm and close the issue?
msg355302 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-10-24 08:40
I will do it differently. Nobody managed to reproduce the bug. The upstream CI looks to be fine. So I close the issue.

If someone sees a crash, please open a new issue with more context, like explain how to reproduce it ;-)
History
Date User Action Args
2019-10-24 08:40:13vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg355302

stage: resolved
2019-10-24 08:24:00xtreaksetmessages: + msg355300
2019-09-24 14:22:35eamanusetnosy: + eamanu
2019-09-24 13:17:13cooperleessetmessages: + msg353091
2019-09-24 11:57:19vstinnersetmessages: + msg353077
2019-09-24 11:43:23xtreaksetmessages: + msg353076
2019-09-24 11:29:36xtreaksetnosy: + xtreak
2019-09-23 14:33:10vstinnersetmessages: + msg353019
2019-09-23 14:31:53vstinnersetmessages: + msg353018
2019-09-22 18:19:11terry.reedysetnosy: + vstinner
messages: + msg352986
2019-09-22 17:02:27cooperleessetmessages: + msg352984
2019-09-21 00:57:43terry.reedysetnosy: + terry.reedy
messages: + msg352916
2019-09-14 14:58:37cooperleessetmessages: + msg352434
2019-09-14 14:48:53cooperleessetmessages: + msg352433
2019-09-14 14:47:40cooperleescreate