Bug#1101852: joblib: FTBFS: failing tests
Santiago Vila
sanvila at debian.org
Tue Apr 1 18:12:42 BST 2025
Package: src:joblib
Version: 1.4.2-3
Severity: serious
Tags: ftbfs trixie sid
Dear maintainer:
During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
dh binary --buildsystem=pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
dh_auto_configure -O--buildsystem=pybuild
dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib
* Building wheel...
[... snipped ...]
[Worker 72411] Mean for slice 24 is 0.499804
[Worker 72411] Mean for slice 25 is 0.499862
[Worker 72411] Mean for slice 26 is 0.500288
[Worker 72411] Mean for slice 27 is 0.500574
[Worker 72411] Mean for slice 36 is 0.499939
[Worker 72411] Mean for slice 37 is 0.499588
[Worker 72411] Mean for slice 38 is 0.499484
[Worker 72411] Mean for slice 39 is 0.499655
[Worker 72411] Mean for slice 40 is 0.499515
[Worker 72411] Mean for slice 41 is 0.499870
[Worker 72411] Mean for slice 42 is 0.499825
[Worker 72411] Mean for slice 43 is 0.500291
[Worker 72411] Mean for slice 52 is 0.500135
[Worker 72411] Mean for slice 53 is 0.499961
[Worker 72411] Mean for slice 54 is 0.500484
[Worker 72411] Mean for slice 55 is 0.500101
[Worker 72411] Mean for slice 56 is 0.499932
[Worker 72411] Mean for slice 57 is 0.499655
[Worker 72411] Mean for slice 58 is 0.499578
[Worker 72411] Mean for slice 59 is 0.499419
[Worker 72411] Mean for slice 76 is 0.500085
[Worker 72411] Mean for slice 77 is 0.500091
[Worker 72411] Mean for slice 78 is 0.499649
[Worker 72411] Mean for slice 79 is 0.499709
[Worker 72411] Mean for slice 80 is 0.499443
[Worker 72411] Mean for slice 81 is 0.499264
[Worker 72411] Mean for slice 82 is 0.499219
[Worker 72411] Mean for slice 83 is 0.499209
[Worker 72411] Mean for slice 84 is 0.499090
[Worker 72411] Mean for slice 85 is 0.499414
[Worker 72411] Mean for slice 86 is 0.499436
[Worker 72411] Mean for slice 87 is 0.499538
[Worker 72411] Mean for slice 88 is 0.499982
[Worker 72411] Mean for slice 89 is 0.499890
[Worker 72411] Mean for slice 90 is 0.499794
[Worker 72411] Mean for slice 91 is 0.500261
[Worker 72411] Mean for slice 93 is 0.499729
[Worker 72410] Mean for slice 1 is 0.499822
[Worker 72410] Mean for slice 2 is 0.500192
[Worker 72410] Mean for slice 4 is 0.499882
[Worker 72410] Mean for slice 5 is 0.500227
[Worker 72410] Mean for slice 8 is 0.500768
[Worker 72410] Mean for slice 9 is 0.500827
[Worker 72410] Mean for slice 12 is 0.500622
[Worker 72410] Mean for slice 13 is 0.500309
[Worker 72410] Mean for slice 14 is 0.500301
[Worker 72410] Mean for slice 15 is 0.500188
[Worker 72410] Mean for slice 20 is 0.499801
[Worker 72410] Mean for slice 21 is 0.499498
[Worker 72410] Mean for slice 22 is 0.499277
[Worker 72410] Mean for slice 23 is 0.499704
[Worker 72410] Mean for slice 28 is 0.500372
[Worker 72410] Mean for slice 29 is 0.500678
[Worker 72410] Mean for slice 30 is 0.500472
[Worker 72410] Mean for slice 31 is 0.500405
[Worker 72410] Mean for slice 32 is 0.500430
[Worker 72410] Mean for slice 33 is 0.500550
[Worker 72410] Mean for slice 34 is 0.500390
[Worker 72410] Mean for slice 35 is 0.500548
[Worker 72410] Mean for slice 44 is 0.500116
[Worker 72410] Mean for slice 45 is 0.500156
[Worker 72410] Mean for slice 46 is 0.500287
[Worker 72410] Mean for slice 47 is 0.500436
[Worker 72410] Mean for slice 48 is 0.500211
[Worker 72410] Mean for slice 49 is 0.499870
[Worker 72410] Mean for slice 50 is 0.499956
[Worker 72410] Mean for slice 51 is 0.500031
[Worker 72410] Mean for slice 60 is 0.499742
[Worker 72410] Mean for slice 61 is 0.499482
[Worker 72410] Mean for slice 62 is 0.499713
[Worker 72410] Mean for slice 63 is 0.499787
[Worker 72410] Mean for slice 64 is 0.499745
[Worker 72410] Mean for slice 65 is 0.499882
[Worker 72410] Mean for slice 66 is 0.500111
[Worker 72410] Mean for slice 67 is 0.500058
[Worker 72410] Mean for slice 68 is 0.500018
[Worker 72410] Mean for slice 69 is 0.500003
[Worker 72410] Mean for slice 70 is 0.499966
[Worker 72410] Mean for slice 71 is 0.500159
[Worker 72410] Mean for slice 72 is 0.500172
[Worker 72410] Mean for slice 73 is 0.500485
[Worker 72410] Mean for slice 74 is 0.500487
[Worker 72410] Mean for slice 75 is 0.500367
[Worker 72410] Mean for slice 92 is 0.500122
[Worker 72410] Mean for slice 94 is 0.499784
Exception ignored in: <function ResourceTracker.__del__ at 0x7f44966825c0>
Traceback (most recent call last):
File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 82, in __del__
File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 91, in _stop
File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 116, in _stop_locked
ChildProcessError: [Errno 10] No child processes
Exception ignored in: <function ResourceTracker.__del__ at 0x7fdbab0825c0>
Traceback (most recent call last):
File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 82, in __del__
File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 91, in _stop
File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 116, in _stop_locked
ChildProcessError: [Errno 10] No child processes
make[2]: Leaving directory '/<<PKGBUILDDIR>>/doc'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_test -O--buildsystem=pybuild
I: pybuild pybuild:308: cp -v debian/conftest.py /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build
'debian/conftest.py' -> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/conftest.py'
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build; python3.13 -m pytest -k "not test_nested_loop_error_in_grandchild_resource_tracker_silent and not test_resource_tracker_silent_when_reference_cycles and not test_parallel_with_interactively_defined_functions_default_backend and not test_joblib_pickle_across_python_versions" --confcutdir=.
[1m============================= test session starts ==============================[0m
platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
configfile: pyproject.toml
plugins: typeguard-4.4.2
collected 1487 items / 4 deselected / 2 skipped / 1483 selected
joblib/__init__.py [32m.[0m[33m [ 0%][0m
joblib/_utils.py [32m.[0m[33m [ 0%][0m
joblib/parallel.py [32m.[0m[32m.[0m[32m.[0m[33m [ 0%][0m
joblib/test/data/create_numpy_pickle.py [32m.[0m[33m [ 0%][0m
joblib/test/test_backports.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 0%][0m
joblib/test/test_cloudpickle_wrapper.py [32m.[0m[33m [ 0%][0m
joblib/test/test_config.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 2%][0m
joblib/test/test_disk.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 2%][0m
joblib/test/test_func_inspect.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 5%][0m
joblib/test/test_hashing.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 8%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 13%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 18%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 22%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 27%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 32%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 37%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 40%][0m
joblib/test/test_init.py [32m.[0m[33m [ 40%][0m
joblib/test/test_logger.py [32m.[0m[33m [ 40%][0m
joblib/test/test_memmapping.py [32m.[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31mF[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31mF[0m[32m.[0m[31mF[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 42%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 43%][0m
joblib/test/test_memory.py [32m.[0m[33mx[0m[33mx[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 46%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 47%][0m
joblib/test/test_memory_async.py [33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[31m [ 48%][0m
joblib/test/test_missing_multiprocessing.py [32m.[0m[31m [ 48%][0m
joblib/test/test_module.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 48%][0m
joblib/test/test_numpy_pickle.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 51%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 56%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[32m.[0m[32m.[0m[31m [ 57%][0m
joblib/test/test_numpy_pickle_compat.py [32m.[0m[31m [ 57%][0m
joblib/test/test_numpy_pickle_utils.py [32m.[0m[32m.[0m[31m [ 57%][0m
joblib/test/test_parallel.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 60%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 65%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 70%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mX[0m[33mX[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 74%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[32m.[0m[33ms[0m[33ms[0m[32m.[0m[31m [ 79%]
[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[32m.[0m[33ms[0m[33ms[0m[32m.[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[32m.[0m[33ms[0m[33ms[0m[32m.[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 84%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 89%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 94%]
[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[33ms[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 98%][0m
joblib/test/test_store_backends.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 99%][0m
joblib/test/test_testing.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [ 99%][0m
joblib/test/test_utils.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m [100%][0m
=================================== FAILURES ===================================
[31m[1m__________ test_permission_error_windows_memmap_sent_to_parent[loky] ___________[0m
backend = 'loky'
[0m[37m at with_numpy[39;49;00m[90m[39;49;00m
[37m at with_multiprocessing[39;49;00m[90m[39;49;00m
[37m at parametrize[39;49;00m([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mmultiprocessing[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mloky[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
[94mdef[39;49;00m [92mtest_permission_error_windows_memmap_sent_to_parent[39;49;00m(backend):[90m[39;49;00m
[90m# Second non-regression test for:[39;49;00m[90m[39;49;00m
[90m# https://github.com/joblib/joblib/issues/806[39;49;00m[90m[39;49;00m
[90m# previously, child process would not convert temporary memmaps to numpy[39;49;00m[90m[39;49;00m
[90m# arrays when sending the data back to the parent process. This would lead[39;49;00m[90m[39;49;00m
[90m# to permission errors on windows when deleting joblib's temporary folder,[39;49;00m[90m[39;49;00m
[90m# as the memmaped files handles would still opened in the parent process.[39;49;00m[90m[39;49;00m
cmd = [33m'''[39;49;00m[33mif 1:[39;49;00m[33m[39;49;00m
[33m import os[39;49;00m[33m[39;49;00m
[33m import time[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m import numpy as np[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m from joblib import Parallel, delayed[39;49;00m[33m[39;49;00m
[33m from testutils import return_slice_of_data[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m data = np.ones(int(2e6))[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m if __name__ == [39;49;00m[33m'[39;49;00m[33m__main__[39;49;00m[33m'[39;49;00m[33m:[39;49;00m[33m[39;49;00m
[33m # warm-up call to launch the workers and start the resource_tracker[39;49;00m[33m[39;49;00m
[33m _ = Parallel(n_jobs=2, verbose=5, backend=[39;49;00m[33m'[39;49;00m[33m{b}[39;49;00m[33m'[39;49;00m[33m)([39;49;00m[33m[39;49;00m
[33m delayed(id)(i) for i in range(20))[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m time.sleep(0.5)[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m slice_of_data = Parallel(n_jobs=2, verbose=5, backend=[39;49;00m[33m'[39;49;00m[33m{b}[39;49;00m[33m'[39;49;00m[33m)([39;49;00m[33m[39;49;00m
[33m delayed(return_slice_of_data)(data, 0, 20) for _ in range(10))[39;49;00m[33m[39;49;00m
[33m [39;49;00m[33m'''[39;49;00m.format(b=backend)[90m[39;49;00m
[90m[39;49;00m
[94mfor[39;49;00m _ [95min[39;49;00m [96mrange[39;49;00m([94m3[39;49;00m):[90m[39;49;00m
env = os.environ.copy()[90m[39;49;00m
env[[33m'[39;49;00m[33mPYTHONPATH[39;49;00m[33m'[39;49;00m] = os.path.dirname([91m__file__[39;49;00m)[90m[39;49;00m
p = subprocess.Popen([sys.executable, [33m'[39;49;00m[33m-c[39;49;00m[33m'[39;49;00m, cmd],[90m[39;49;00m
stderr=subprocess.PIPE,[90m[39;49;00m
stdout=subprocess.PIPE, env=env)[90m[39;49;00m
p.wait()[90m[39;49;00m
out, err = p.communicate()[90m[39;49;00m
[94massert[39;49;00m p.returncode == [94m0[39;49;00m, err[90m[39;49;00m
[94massert[39;49;00m out == [33mb[39;49;00m[33m'[39;49;00m[33m'[39;49;00m[90m[39;49;00m
[94mif[39;49;00m sys.version_info[:[94m3[39;49;00m] [95mnot[39;49;00m [95min[39;49;00m [([94m3[39;49;00m, [94m8[39;49;00m, [94m0[39;49;00m), ([94m3[39;49;00m, [94m8[39;49;00m, [94m1[39;49;00m)]:[90m[39;49;00m
[90m# In early versions of Python 3.8, a reference leak[39;49;00m[90m[39;49;00m
[90m# https://github.com/cloudpipe/cloudpickle/issues/327, holds[39;49;00m[90m[39;49;00m
[90m# references to pickled objects, generating race condition during[39;49;00m[90m[39;49;00m
[90m# cleanup finalizers of joblib and noisy resource_tracker outputs.[39;49;00m[90m[39;49;00m
> [94massert[39;49;00m [33mb[39;49;00m[33m'[39;49;00m[33mresource_tracker[39;49;00m[33m'[39;49;00m [95mnot[39;49;00m [95min[39;49;00m err[90m[39;49;00m
[1m[31mE assert b'resource_tracker' not in b'[Parallel(n_jobs=2)]: Using backend LokyBackend with 2 concurrent workers.\n[Parallel(n_jobs=2)]: Done 12 out of 2...13/multiprocessing/resource_tracker.py", line 116, in _stop_locked\nChildProcessError: [Errno 10] No child processes\n'[0m
[1m[31mjoblib/test/test_memmapping.py[0m:441: AssertionError
[31m[1m_______ test_multithreaded_parallel_termination_resource_tracker_silent ________[0m
[0m[37m at with_numpy[39;49;00m[90m[39;49;00m
[37m at with_multiprocessing[39;49;00m[90m[39;49;00m
[94mdef[39;49;00m [92mtest_multithreaded_parallel_termination_resource_tracker_silent[39;49;00m():[90m[39;49;00m
[90m# test that concurrent termination attempts of a same executor does not[39;49;00m[90m[39;49;00m
[90m# emit any spurious error from the resource_tracker. We test various[39;49;00m[90m[39;49;00m
[90m# situations making 0, 1 or both parallel call sending a task that will[39;49;00m[90m[39;49;00m
[90m# make the worker (and thus the whole Parallel call) error out.[39;49;00m[90m[39;49;00m
cmd = [33m'''[39;49;00m[33mif 1:[39;49;00m[33m[39;49;00m
[33m import os[39;49;00m[33m[39;49;00m
[33m import numpy as np[39;49;00m[33m[39;49;00m
[33m from joblib import Parallel, delayed[39;49;00m[33m[39;49;00m
[33m from joblib.externals.loky.backend import resource_tracker[39;49;00m[33m[39;49;00m
[33m from concurrent.futures import ThreadPoolExecutor, wait[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m resource_tracker.VERBOSE = 0[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m array = np.arange(int(1e2))[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m temp_dirs_thread_1 = set()[39;49;00m[33m[39;49;00m
[33m temp_dirs_thread_2 = set()[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m[39;49;00m
[33m def raise_error(array):[39;49;00m[33m[39;49;00m
[33m raise ValueError[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m[39;49;00m
[33m def parallel_get_filename(array, temp_dirs):[39;49;00m[33m[39;49;00m
[33m with Parallel(backend=[39;49;00m[33m"[39;49;00m[33mloky[39;49;00m[33m"[39;49;00m[33m, n_jobs=2, max_nbytes=10) as p:[39;49;00m[33m[39;49;00m
[33m for i in range(10):[39;49;00m[33m[39;49;00m
[33m [filename] = p([39;49;00m[33m[39;49;00m
[33m delayed(getattr)(array, [39;49;00m[33m"[39;49;00m[33mfilename[39;49;00m[33m"[39;49;00m[33m) for _ in range(1)[39;49;00m[33m[39;49;00m
[33m )[39;49;00m[33m[39;49;00m
[33m temp_dirs.add(os.path.dirname(filename))[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m[39;49;00m
[33m def parallel_raise(array, temp_dirs):[39;49;00m[33m[39;49;00m
[33m with Parallel(backend=[39;49;00m[33m"[39;49;00m[33mloky[39;49;00m[33m"[39;49;00m[33m, n_jobs=2, max_nbytes=10) as p:[39;49;00m[33m[39;49;00m
[33m for i in range(10):[39;49;00m[33m[39;49;00m
[33m [filename] = p([39;49;00m[33m[39;49;00m
[33m delayed(raise_error)(array) for _ in range(1)[39;49;00m[33m[39;49;00m
[33m )[39;49;00m[33m[39;49;00m
[33m temp_dirs.add(os.path.dirname(filename))[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m[39;49;00m
[33m executor = ThreadPoolExecutor(max_workers=2)[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m # both function calls will use the same loky executor, but with a[39;49;00m[33m[39;49;00m
[33m # different Parallel object.[39;49;00m[33m[39;49;00m
[33m future_1 = executor.submit([39;49;00m[33m{f1}[39;49;00m[33m, array, temp_dirs_thread_1)[39;49;00m[33m[39;49;00m
[33m future_2 = executor.submit([39;49;00m[33m{f2}[39;49;00m[33m, array, temp_dirs_thread_2)[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m # Wait for both threads to terminate their backend[39;49;00m[33m[39;49;00m
[33m wait([future_1, future_2])[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m future_1.result()[39;49;00m[33m[39;49;00m
[33m future_2.result()[39;49;00m[33m[39;49;00m
[33m [39;49;00m[33m'''[39;49;00m[90m[39;49;00m
functions_and_returncodes = [[90m[39;49;00m
([33m"[39;49;00m[33mparallel_get_filename[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mparallel_get_filename[39;49;00m[33m"[39;49;00m, [94m0[39;49;00m),[90m[39;49;00m
([33m"[39;49;00m[33mparallel_get_filename[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mparallel_raise[39;49;00m[33m"[39;49;00m, [94m1[39;49;00m),[90m[39;49;00m
([33m"[39;49;00m[33mparallel_raise[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mparallel_raise[39;49;00m[33m"[39;49;00m, [94m1[39;49;00m)[90m[39;49;00m
][90m[39;49;00m
[90m[39;49;00m
[94mfor[39;49;00m f1, f2, returncode [95min[39;49;00m functions_and_returncodes:[90m[39;49;00m
p = subprocess.Popen([sys.executable, [33m'[39;49;00m[33m-c[39;49;00m[33m'[39;49;00m, cmd.format(f1=f1, f2=f2)],[90m[39;49;00m
stderr=subprocess.PIPE, stdout=subprocess.PIPE)[90m[39;49;00m
p.wait()[90m[39;49;00m
out, err = p.communicate()[90m[39;49;00m
[94massert[39;49;00m p.returncode == returncode, out.decode()[90m[39;49;00m
> [94massert[39;49;00m [33mb[39;49;00m[33m"[39;49;00m[33mresource_tracker[39;49;00m[33m"[39;49;00m [95mnot[39;49;00m [95min[39;49;00m err, err.decode()[90m[39;49;00m
[1m[31mE AssertionError: Exception ignored in: <function ResourceTracker.__del__ at 0x7ff0a639a5c0>[0m
[1m[31mE Traceback (most recent call last):[0m
[1m[31mE File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 82, in __del__[0m
[1m[31mE Exception ignored in: <function ResourceTracker.__del__ at 0x7f737c48a5c0>[0m
[1m[31mE Traceback (most recent call last):[0m
[1m[31mE File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 82, in __del__[0m
[1m[31mE File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 91, in _stop[0m
[1m[31mE File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 116, in _stop_locked[0m
[1m[31mE File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 91, in _stop[0m
[1m[31mE ChildProcessError: [Errno 10] No child processes[0m
[1m[31mE File "/usr/lib/python3.13/multiprocessing/resource_tracker.py", line 116, in _stop_locked[0m
[1m[31mE ChildProcessError: [Errno 10] No child processes[0m
[1m[31mE [0m
[1m[31mE assert b'resource_tracker' not in b'Exception ignored in: <function ResourceTracker.__del__ at 0x7ff0a639a5c0>\nTraceback (most recent call last):\n Fi...13/multiprocessing/resource_tracker.py", line 116, in _stop_locked\nChildProcessError: [Errno 10] No child processes\n'[0m
[1m[31mjoblib/test/test_memmapping.py[0m:585: AssertionError
[31m[1m________________ test_many_parallel_calls_on_same_object[loky] _________________[0m
backend = 'loky'
[0m[37m at with_numpy[39;49;00m[90m[39;49;00m
[37m at with_multiprocessing[39;49;00m[90m[39;49;00m
[37m at parametrize[39;49;00m([33m"[39;49;00m[33mbackend[39;49;00m[33m"[39;49;00m, [[33m"[39;49;00m[33mmultiprocessing[39;49;00m[33m"[39;49;00m, [33m"[39;49;00m[33mloky[39;49;00m[33m"[39;49;00m])[90m[39;49;00m
[94mdef[39;49;00m [92mtest_many_parallel_calls_on_same_object[39;49;00m(backend):[90m[39;49;00m
[90m# After #966 got merged, consecutive Parallel objects were sharing temp[39;49;00m[90m[39;49;00m
[90m# folder, which would lead to race conditions happening during the[39;49;00m[90m[39;49;00m
[90m# temporary resources management with the resource_tracker. This is a[39;49;00m[90m[39;49;00m
[90m# non-regression test that makes sure that consecutive Parallel operations[39;49;00m[90m[39;49;00m
[90m# on the same object do not error out.[39;49;00m[90m[39;49;00m
cmd = [33m'''[39;49;00m[33mif 1:[39;49;00m[33m[39;49;00m
[33m import os[39;49;00m[33m[39;49;00m
[33m import time[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m import numpy as np[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m from joblib import Parallel, delayed[39;49;00m[33m[39;49;00m
[33m from testutils import return_slice_of_data[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m data = np.ones(100)[39;49;00m[33m[39;49;00m
[33m[39;49;00m
[33m if __name__ == [39;49;00m[33m'[39;49;00m[33m__main__[39;49;00m[33m'[39;49;00m[33m:[39;49;00m[33m[39;49;00m
[33m for i in range(5):[39;49;00m[33m[39;49;00m
[33m slice_of_data = Parallel([39;49;00m[33m[39;49;00m
[33m n_jobs=2, max_nbytes=1, backend=[39;49;00m[33m'[39;49;00m[33m{b}[39;49;00m[33m'[39;49;00m[33m)([39;49;00m[33m[39;49;00m
[33m delayed(return_slice_of_data)(data, 0, 20)[39;49;00m[33m[39;49;00m
[33m for _ in range(10)[39;49;00m[33m[39;49;00m
[33m )[39;49;00m[33m[39;49;00m
[33m [39;49;00m[33m'''[39;49;00m.format(b=backend)[90m[39;49;00m
env = os.environ.copy()[90m[39;49;00m
env[[33m'[39;49;00m[33mPYTHONPATH[39;49;00m[33m'[39;49;00m] = os.path.dirname([91m__file__[39;49;00m)[90m[39;49;00m
p = subprocess.Popen([90m[39;49;00m
[sys.executable, [33m'[39;49;00m[33m-c[39;49;00m[33m'[39;49;00m, cmd],[90m[39;49;00m
stderr=subprocess.PIPE,[90m[39;49;00m
stdout=subprocess.PIPE,[90m[39;49;00m
env=env,[90m[39;49;00m
)[90m[39;49;00m
p.wait()[90m[39;49;00m
out, err = p.communicate()[90m[39;49;00m
[94massert[39;49;00m p.returncode == [94m0[39;49;00m, err[90m[39;49;00m
[94massert[39;49;00m out == [33mb[39;49;00m[33m'[39;49;00m[33m'[39;49;00m[90m[39;49;00m
[94mif[39;49;00m sys.version_info[:[94m3[39;49;00m] [95mnot[39;49;00m [95min[39;49;00m [([94m3[39;49;00m, [94m8[39;49;00m, [94m0[39;49;00m), ([94m3[39;49;00m, [94m8[39;49;00m, [94m1[39;49;00m)]:[90m[39;49;00m
[90m# In early versions of Python 3.8, a reference leak[39;49;00m[90m[39;49;00m
[90m# https://github.com/cloudpipe/cloudpickle/issues/327, holds[39;49;00m[90m[39;49;00m
[90m# references to pickled objects, generating race condition during[39;49;00m[90m[39;49;00m
[90m# cleanup finalizers of joblib and noisy resource_tracker outputs.[39;49;00m[90m[39;49;00m
> [94massert[39;49;00m [33mb[39;49;00m[33m'[39;49;00m[33mresource_tracker[39;49;00m[33m'[39;49;00m [95mnot[39;49;00m [95min[39;49;00m err[90m[39;49;00m
[1m[31mE assert b'resource_tracker' not in b'Exception ignored in: <function ResourceTracker.__del__ at 0x7f20df882660>\nTraceback (most recent call last):\n Fi...13/multiprocessing/resource_tracker.py", line 116, in _stop_locked\nChildProcessError: [Errno 10] No child processes\n'[0m
[1m[31mjoblib/test/test_memmapping.py[0m:633: AssertionError
[33m=============================== warnings summary ===============================[0m
joblib/testing.py:22
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/testing.py:22: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
timeout = pytest.mark.timeout
joblib/test/test_parallel.py:1806
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py:1806: PytestUnknownMarkWarning: Unknown pytest.mark.no_cover - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.no_cover
joblib/executor.py:105
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/executor.py:105: PytestCollectionWarning: cannot collect test class '_TestingMemmappingExecutor' because it has a __init__ constructor (from: .pybuild/cpython3_3.13_joblib/build/joblib/test/test_memmapping.py)
class _TestingMemmappingExecutor(MemmappingExecutor):
joblib/test/test_memory_async.py:27
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py:27: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.asyncio
joblib/test/test_memory_async.py:68
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py:68: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.asyncio
joblib/test/test_memory_async.py:86
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py:86: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.asyncio
joblib/test/test_memory_async.py:125
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py:125: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.asyncio
joblib/test/test_memory_async.py:152
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py:152: PytestUnknownMarkWarning: Unknown pytest.mark.asyncio - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
@pytest.mark.asyncio
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_func_inspect.py::test_filter_args_2
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_func_inspect.py:131: UserWarning: Cannot inspect object functools.partial(<function f at 0x7f2a7dbd37e0>, 1), ignore list will not work.
assert filter_args(ff, ['y'], (1, )) == {'*': [1], '**': {}}
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_hashing.py: 2 warnings
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memmapping.py: 27 warnings
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py: 143 warnings
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_store_backends.py: 2 warnings
/usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=72639) is multi-threaded, use of fork() may lead to deadlocks in the child.
self.pid = os.fork()
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memmapping.py: 20 warnings
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py: 152 warnings
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/externals/loky/backend/fork_exec.py:38: DeprecationWarning: This process (pid=72639) is multi-threaded, use of fork() may lead to deadlocks in the child.
pid = os.fork()
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory.py::test_memory_integration
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory.py:104: UserWarning: Compressed results cannot be memmapped
memory = Memory(location=tmpdir.strpath, verbose=10,
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory.py::test_memory_integration
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/memory.py:128: UserWarning: Compressed items cannot be memmapped in a filesystem store. Option will be ignored.
obj.configure(location, verbose=verbose,
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory.py::test_memory_integration
/usr/lib/python3.13/contextlib.py:141: UserWarning: mmap_mode "r" is not compatible with compressed file /tmp/pytest-of-buildd/pytest-0/test_memory_integration0/joblib/joblib/test/test_memory/test_memory_integration/<locals>/f/b69f9d78d7bc537482721c40ce38db0a/output.pkl. "r" flag will be ignored.
return next(self.gen)
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py::test_memory_integration_async
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py::test_no_memory_async
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py::test_memory_numpy_check_mmap_mode_async
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py::test_call_and_shelve_async
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_memory_async.py::test_memorized_func_call_async
/usr/lib/python3/dist-packages/_pytest/python.py:148: PytestUnhandledCoroutineWarning: async def functions are not natively supported and have been skipped.
You need to install a suitable plugin for your async framework, for example:
- anyio
- pytest-asyncio
- pytest-tornasync
- pytest-trio
- pytest-twisted
warnings.warn(PytestUnhandledCoroutineWarning(msg.format(nodeid)))
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_numpy_pickle.py::test_joblib_compression_formats[lz4-1]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_numpy_pickle.py::test_joblib_compression_formats[lz4-3]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_numpy_pickle.py::test_joblib_compression_formats[lz4-6]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_numpy_pickle.py::test_lz4_compression
/usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85: PytestUnraisableExceptionWarning: Exception ignored in: <_io.BufferedReader>
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/lz4/frame/__init__.py", line 753, in flush
self._fp.flush()
~~~~~~~~~~~~~~^^
ValueError: I/O operation on closed file.
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_nested_loop[threading-multiprocessing]
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/parallel.py:1359: UserWarning: Multiprocessing-backed parallel loops cannot be nested below threads, setting n_jobs=1
n_jobs = self._backend.configure(n_jobs=self.n_jobs, parallel=self,
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_nested_loop[threading-loky]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_nested_loop[threading-back_compat_backend]
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/parallel.py:1359: UserWarning: Loky-backed parallel loops cannot be nested below threads, setting n_jobs=1
n_jobs = self._backend.configure(n_jobs=self.n_jobs, parallel=self,
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_parallel_unordered_generator_returns_fastest_first[threading-2]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_parallel_unordered_generator_returns_fastest_first[threading-4]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_parallel_unordered_generator_returns_fastest_first[loky-2]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_parallel_unordered_generator_returns_fastest_first[loky-4]
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/parallel.py:1817: UserWarning: 1 tasks which were still being processed by the workers have been cancelled. You could benefit from adjusting the input task iterator to limit unnecessary computation time.
warnings.warn(msg)
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_deadlock_with_generator[2-generator-loky]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_deadlock_with_generator[2-generator_unordered-loky]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_deadlock_with_generator[-1-generator-loky]
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py::test_deadlock_with_generator[-1-generator_unordered-loky]
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/parallel.py:1817: UserWarning: 6 tasks which were still being processed by the workers have been cancelled. You could benefit from adjusting the input task iterator to limit unnecessary computation time.
warnings.warn(msg)
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_parallel.py: 24 warnings
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/parallel.py:1817: UserWarning: 4 tasks which were still being processed by the workers have been cancelled. You could benefit from adjusting the input task iterator to limit unnecessary computation time.
warnings.warn(msg)
.pybuild/cpython3_3.13_joblib/build/joblib/test/test_testing.py::test_check_subprocess_call_timeout
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build/joblib/testing.py:58: UserWarning: Timeout running ['/usr/bin/python3.13', '-c', 'import time\nimport sys\nprint("before sleep on stdout")\nsys.stdout.flush()\nsys.stderr.write("before sleep on stderr")\nsys.stderr.flush()\ntime.sleep(10)\nprint("process should have be killed before")\nsys.stdout.flush()']
warnings.warn(f"Timeout running {cmd}")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
[36m[1m=========================== short test summary info ============================[0m
[31mFAILED[0m joblib/test/test_memmapping.py::[1mtest_permission_error_windows_memmap_sent_to_parent[loky][0m - assert b'resource_tracker' not in b'[Parallel(n_jobs=2)]: Using backend Lok...
[31mFAILED[0m joblib/test/test_memmapping.py::[1mtest_multithreaded_parallel_termination_resource_tracker_silent[0m - AssertionError: Exception ignored in: <function ResourceTracker.__del__ at ...
[31mFAILED[0m joblib/test/test_memmapping.py::[1mtest_many_parallel_calls_on_same_object[loky][0m - assert b'resource_tracker' not in b'Exception ignored in: <function Resourc...
[31m= [31m[1m3 failed[0m, [32m1417 passed[0m, [33m59 skipped[0m, [33m4 deselected[0m, [33m2 xfailed[0m, [33m4 xpassed[0m, [33m403 warnings[0m[31m in 63.29s (0:01:03)[0m[31m =[0m
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_joblib/build; python3.13 -m pytest -k "not test_nested_loop_error_in_grandchild_resource_tracker_silent and not test_resource_tracker_silent_when_reference_cycles and not test_parallel_with_interactively_defined_functions_default_backend and not test_joblib_pickle_across_python_versions" --confcutdir=.
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
make: *** [debian/rules:27: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:
https://people.debian.org/~sanvila/build-logs/202504/
About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.
If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:joblib, so that this is still
visible in the BTS web page for this package.
Thanks.
More information about the debian-science-maintainers
mailing list