pytest-dev / pytest-dev/pytest
Acces violation on Windows when importing some scipy modules
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 14.5k
- Forks
- 3.4k
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 35
Description
If I create a folder containing the file test_foo.py with the following content
from scipy.special import ellipk
from scipy.optimize import root_scalar
def test_foo():
assert 1 == 1
and run pytest in that folder twice, I get the following output:
(test) C:\pytest_sandbox>pytest
================================================= test session starts =================================================
platform win32 -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0
rootdir: C:\pytest_sandbox
collected 1 item
test_foo.py . [100%]
================================================== 1 passed in 1.08s ==================================================
(test) C:\pytest_sandbox>pytest
================================================= test session starts =================================================
platform win32 -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0
rootdir: C:\pytest_sandbox
collecting ... Windows fatal exception: access violation
Current thread 0x00000a20 (most recent call first):
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 1053 in create_module
File "<frozen importlib._bootstrap>", line 816 in module_from_spec
File "<frozen importlib._bootstrap>", line 924 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1434 in _handle_fromlist
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\_duccfft\basic.py", line 6 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\_duccfft\__init__.py", line 3 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\_helper.py", line 4 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\__init__.py", line 92 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 1061 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\linalg\interpolative.py", line 360 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_remove_redundancy.py", line 9 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_linprog_util.py", line 9 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_linprog_ip.py", line 27 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_linprog.py", line 22 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\__init__.py", line 435 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\pytest_sandbox\test_foo.py", line 2 in <module>
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\_pytest\assertion\rewrite.py", line 188 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
Current thread's C stack trace (most recent call first):
<cannot get C stack on this system>
Windows fatal exception: access violation
Current thread 0x00000a20 (most recent call first):
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 1053 in create_module
File "<frozen importlib._bootstrap>", line 816 in module_from_spec
File "<frozen importlib._bootstrap>", line 924 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1434 in _handle_fromlist
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\_duccfft\basic.py", line 6 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\_duccfft\__init__.py", line 3 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\_helper.py", line 4 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\fft\__init__.py", line 92 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 1061 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\linalg\interpolative.py", line 360 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_remove_redundancy.py", line 9 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_linprog_util.py", line 9 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_linprog_ip.py", line 27 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\_linprog.py", line 22 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\scipy\optimize\__init__.py", line 435 in <module>
File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 759 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
File "C:\pytest_sandbox\test_foo.py", line 2 in <module>
File "C:\Users\wilde02\AppData\Local\miniforge3\envs\test\Lib\site-packages\_pytest\assertion\rewrite.py", line 188 in exec_module
File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
Current thread's C stack trace (most recent call first):
<cannot get C stack on this system>
collected 1 item
test_foo.py . [100%]
================================================== 1 passed in 0.98s ==================================================
That is, the first time it runs without issues, the second time (and all subsequent times) I get an access violation, though the test still passes just fine.
- If I delete either of the folders
.pytest_cacheand__pycache__that are created during the run, the error disappears again (for one run). - If I remove either of the two
scipyimports, the error disappears immediately.
I have to say that I don't quite understand what's going on here. If you need any more information or debugging done, I'm happy to provide that.
Environment
I am on Windows 11 using a conda environment. pip list reveals the following versions.
(test) C:\pytest_sandbox>pip list
Package Version
----------------- -------
colorama 0.4.6
exceptiongroup 1.3.1
iniconfig 2.3.0
numpy 2.5.3
packaging 26.3
pip 26.2.1
pluggy 1.6.0
Pygments 2.21.0
pytest 9.1.1
scipy 1.18.1
tomli 2.4.1
typing_extensions 4.16.0
- a detailed description of the bug or problem you are having
- output of
pip listfrom the virtual environment you are using - pytest and operating system versions
- minimal example if possible
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the crash by running pytest twice on the provided test_foo.py, then inspect the traceback through _pytest/assertion/rewrite.py and the reported SciPy imports. Determine the minimal regression coverage needed for the Windows access violation; done means the second run completes without the fatal exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100