adamchainz / time-machine

Travel through time in your tests.
MIT License
693 stars 33 forks source link

Segmentation fault #393

Closed adamchainz closed 7 months ago

adamchainz commented 1 year ago

Python Version

3.9

pytest Version

No response

Package Version

main

Description

This CI run crashed with a segmentation fault:

 py39: install_deps> python -I -m pip install -r requirements/py39.txt
.pkg: install_requires> python -I -m pip install setuptools
.pkg: _optional_hooks> python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: get_requires_for_build_wheel> python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: install_requires_for_build_wheel> python -I -m pip install wheel
.pkg: freeze> python -m pip freeze --all
.pkg: pip==23.2.1,setuptools==68.2.0,wheel==0.41.2
.pkg: build_wheel> python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta
py39: install_package_deps> python -I -m pip install python-dateutil
py39: install_package> python -I -m pip install --force-reinstall --no-deps /home/runner/work/time-machine/time-machine/.tox/.tmp/package/1/time_machine-2.13.0-cp39-cp39-linux_x86_64.whl
py39: freeze> python -m pip freeze --all
py39: coverage==7.3.1,exceptiongroup==1.1.3,importlib-metadata==6.8.0,iniconfig==2.0.0,packaging==23.1,pip==23.2.1,pluggy==1.3.0,pytest==7.4.2,pytest-randomly==3.15.0,python-dateutil==2.8.2,setuptools==68.2.0,six==1.16.0,time-machine @ file:///home/runner/work/time-machine/time-machine/.tox/.tmp/package/1/time_machine-2.13.0-cp39-cp39-linux_x86_64.whl#sha256=58de29be13551113ab8c81f9699bd72954ce9f7ac0a564de04493c24984be8b0,tomli==2.0.1,wheel==0.41.2,zipp==3.17.0
py39: commands[0]> python -W error::ResourceWarning -W error::DeprecationWarning -W error::PendingDeprecationWarning -W ignore:datetime.datetime.utcfromtimestamp:DeprecationWarning -W ignore:datetime.datetime.utcnow:DeprecationWarning -m coverage run -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.9.18, pytest-7.4.2, pluggy-1.3.0
cachedir: .tox/py39/.pytest_cache
Using --randomly-seed=3435205996
rootdir: /home/runner/work/time-machine/time-machine
configfile: pyproject.toml
plugins: time-machine-2.13.0, randomly-3.15.0
collected 96 items

Fatal Python error: Segmentation fault

Current thread 0x00007fd3c642db80 (most recent call first):
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/time_machine/__init__.py", line 405 in time
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/time_machine/__init__.py", line 129 in extract_timestamp_tzname
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/time_machine/__init__.py", line 229 in __init__
  File "/home/runner/work/time-machine/time-machine/tests/test_time_machine.py", line 459 in test_destination_timedelta
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/python.py", line 194 in pytest_pyfunc_call
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_callers.py", line 77 in _multicall
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_manager.py", line 115 in _hookexec
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_hooks.py", line 493 in __call__
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/python.py", line 1792 in runtest
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 169 in pytest_runtest_call
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_callers.py", line 77 in _multicall
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_manager.py", line 115 in _hookexec
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_hooks.py", line 493 in __call__
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 262 in <lambda>
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 341 in from_call
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 261 in call_runtest_hook
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 222 in call_and_report
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 133 in runtestprotocol
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/runner.py", line 114 in pytest_runtest_protocol
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_callers.py", line 77 in _multicall
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_manager.py", line 115 in _hookexec
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_hooks.py", line 493 in __call__
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/main.py", line 350 in pytest_runtestloop
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_callers.py", line 77 in _multicall
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_manager.py", line 115 in _hookexec
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_hooks.py", line 493 in __call__
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/main.py", line 325 in _main
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/main.py", line 271 in wrap_session
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/main.py", line 318 in pytest_cmdline_main
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_callers.py", line 77 in _multicall
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_manager.py", line 115 in _hookexec
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pluggy/_hooks.py", line 493 in __call__
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/config/__init__.py", line 169 in main
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/_pytest/config/__init__.py", line 192 in console_main
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/pytest/__main__.py", line 5 in <module>
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/coverage/execfile.py", line 211 in run
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/coverage/cmdline.py", line 861 in do_run
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/coverage/cmdline.py", line 684 in command_line
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/coverage/cmdline.py", line 973 in main
  File "/home/runner/work/time-machine/time-machine/.tox/py39/lib/python3.9/site-packages/coverage/__main__.py", line 10 in <module>
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/runpy.py", line 87 in _run_code
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/runpy.py", line 197 in _run_module_as_main
tests/test_time_machine.py py39: exit -11 (2.21 seconds) /home/runner/work/time-machine/time-machine> python -W error::ResourceWarning -W error::DeprecationWarning -W error::PendingDeprecationWarning -W ignore:datetime.datetime.utcfromtimestamp:DeprecationWarning -W ignore:datetime.datetime.utcnow:DeprecationWarning -m coverage run -m pytest tests pid=1907
.pkg: _exit> python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta
  py39: FAIL code -11 (10.65=setup[8.45]+cmd[2.21] seconds)
  evaluation failed :( (11.64 seconds)

A rerun succeeded. Would be nice to understand why.

adamchainz commented 11 months ago

Recurred: https://github.com/adamchainz/time-machine/actions/runs/6699378610/job/18203396034

adamchainz commented 7 months ago

This was the segfault fixed in #431. Verified by checking out commit 9df11f03cfc1db23566e3f28e75f9fc79544551e and running the Python 3.9 tests with the same random seed, --randomly-seed=3435205996. It segfaulted, but after cherry-picking the fix from #433, it passed.