-
Notifications
You must be signed in to change notification settings - Fork 277
Open
Description
I have started testing nilearn on several threads so I am having a look at its upstream libraries to see their thread safe status.
Tried quickly running the tests in multi-threaded (see https://github.com/Quansight-Labs/pytest-run-parallel?tab=readme-ov-file and https://py-free-threading.github.io/) but I am encountering a few parallel failures:
To reproduce:
uv venv -p '3.14t'
source .venv/bin/activate
pip install -e '.[test]'
uv pip install pytest-run-parallel
PYTEST_RUN_PARALLEL_VERBOSE=1
N_THREADS=16
pytest --parallel-threads $N_THREADS nibabel/tests/test_nifti* # only testing a couple of modulesAm getting:
1136 passed, 4 skipped, 4 xfailed, 49 errors
with
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1PairHeader::test_log_checks - AssertionError: assert 'sizeof_hdr s..._hdr to 348\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1PairHeader::test_pixdim_log_checks - AssertionError: assert 'pixdim[1,2,3...xdim values\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1PairHeader::test_logger_error - AssertionError: assert 'bitpix does ...ch datatype\n' == 'bitpix does ...ch datatype\n'
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1PairHeader::test_nifti_qfac_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1PairHeader::test_nifti_qsform_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1PairHeader::test_magic_offset_checks - AssertionError: assert 'magic string... are likely\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1SingleHeader::test_log_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1SingleHeader::test_pixdim_log_checks - AssertionError: assert 'pixdim[1,2,3...xdim values\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1SingleHeader::test_logger_error - AssertionError: assert 'bitpix does ...ch datatype\n' == 'bitpix does ...ch datatype\n'
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1SingleHeader::test_nifti_qfac_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1SingleHeader::test_nifti_qsform_checks - AssertionError: assert 'qform_code -... setting to 0' == 'qform_code -... setting to 0'
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1SingleHeader::test_magic_offset_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Pair::test_load_mmap - FileNotFoundError: [Errno 2] No such file or directory: 'test.hdr'
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Pair::test_big_offset_exts - nibabel.wrapstruct.WrapStructError: Binary block is wrong size
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Pair::test_dtype_to_filename_arg - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Pair::test_hdr_diff - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Pair::test_load_save - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Image::test_load_mmap - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Image::test_big_offset_exts - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Image::test_dtype_to_filename_arg - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Image::test_hdr_diff - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1Image::test_load_save - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti1.py::test_extension_io - assert 0 == 1
PARALLEL FAILED nibabel/tests/test_nifti1.py::TestNifti1General::test_load - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_log_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_pixdim_log_checks - AssertionError: assert 'pixdim[1,2,3...xdim values\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_logger_error - AssertionError: assert 'bitpix does ...ch datatype\n' == 'bitpix does ...ch datatype\n'
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_nifti_qfac_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_nifti_qsform_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_magic_offset_checks - AssertionError: assert 'magic string... are likely\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2PairHeader::test_eol_check - AssertionError: assert 'EOL check al... 10, 26, 10\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_log_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_pixdim_log_checks - AssertionError: assert 'pixdim[1,2,3...xdim values\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_logger_error - AssertionError: assert 'bitpix does ...ch datatype\n' == 'bitpix does ...ch datatype\n'
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_nifti_qfac_checks - AssertionError: assert 'pixdim[0] (q...g qfac to 1\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_nifti_qsform_checks - AssertionError: assert 'qform_code -...etting to 0\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_magic_offset_checks - AssertionError: assert '' != ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2SingleHeader::test_eol_check - AssertionError: assert 'EOL check al... 10, 26, 10\n' == ''
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Image::test_load_mmap - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Image::test_big_offset_exts - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Image::test_dtype_to_filename_arg - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Image::test_hdr_diff - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Image::test_load_save - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Pair::test_load_mmap - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Pair::test_big_offset_exts - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Pair::test_dtype_to_filename_arg - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Pair::test_hdr_diff - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2Pair::test_load_save - FileNotFoundError: [Errno 2] No such file or directory
PARALLEL FAILED nibabel/tests/test_nifti2.py::TestNifti2General::test_load - FileNotFoundError: [Errno 2] No such file or directory
Not started looking into it but from my little experience it could be that the tests and / or the code are not thread safe.
So my question is in short: are there any plans to make nibabel thread safe?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels