scverse / scverse/squidpy

`test_parallelize` fails on local tests and is flaky

Open
#1,111 0 comments 0 reactions 1 assignee View on GitHub

@selmanozleyen is already working on this.

Since Feb 2, 2026.

Dominant language
Python
Stars
598
Forks
121
Avg merge
3d 11h
Merged PRs (30d)
3

Description

Report

my local run results. we need to also check whats wrong here https://github.com/scverse/squidpy/pull/1105

~/projects/squidpy feat/device-settings !1 > pytest tests/utils/test_parallelize.py                                                                                                                                                               27s py squidpy 14:14:25
========================================================================================================================== test session starts ===========================================================================================================================
platform darwin -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
rootdir: /Users/selman/projects/squidpy
configfile: pyproject.toml
plugins: anyio-4.12.1, mock-3.15.1, fast-array-utils-1.3.1, xdist-3.8.0, timeout-2.4.0, typeguard-4.4.4, zarr-3.1.5, cov-7.0.0
collected 12 items                                                                                                                                                                                                                                                       

tests/utils/test_parallelize.py Fatal Python error: Aborted

Thread 0x0000000174ff3000 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/pool.py", line 579 in _handle_results
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 995 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x0000000173fe7000 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/pool.py", line 531 in _handle_tasks
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 995 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x0000000172fdb000 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/selectors.py", line 398 in select
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/connection.py", line 1148 in wait
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/pool.py", line 502 in _wait_for_updates
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/pool.py", line 522 in _handle_workers
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 995 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x0000000171fcf000 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/connection.py", line 648 in SocketClient
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/connection.py", line 525 in Client
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/managers.py", line 814 in _connect
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/managers.py", line 827 in _callmethod
  File "<string>", line 2 in put
  File "/Users/selman/projects/squidpy/tests/utils/test_parallelize.py", line 50 in mock_runner
  File "/Users/selman/projects/squidpy/src/squidpy/_utils.py", line 63 in _callback_wrapper
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/parallel.py", line 607 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/_utils.py", line 109 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/pool.py", line 125 in worker
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 995 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Current thread 0x0000000170fc3000 (most recent call first):
  File "/Users/selman/projects/squidpy/tests/utils/test_parallelize.py", line 22 in wrap_numba_check
  File "/Users/selman/projects/squidpy/tests/utils/test_parallelize.py", line 48 in mock_runner
  File "/Users/selman/projects/squidpy/src/squidpy/_utils.py", line 63 in _callback_wrapper
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/parallel.py", line 607 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/_utils.py", line 109 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/pool.py", line 125 in worker
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 995 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x000000016ffb7000 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/connection.py", line 395 in _recv
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/connection.py", line 430 in _recv_bytes
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/connection.py", line 250 in recv
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/multiprocessing/managers.py", line 831 in _callmethod
  File "<string>", line 2 in get
  File "/Users/selman/projects/squidpy/src/squidpy/_utils.py", line 164 in update
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 995 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x000000016efab000 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 363 in wait
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 660 in wait
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/tqdm/_monitor.py", line 60 in run
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1044 in _bootstrap_inner
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/threading.py", line 1015 in _bootstrap

Thread 0x00000001fd92ec40 (most recent call first):
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/parallel.py", line 1800 in _retrieve
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/parallel.py", line 1682 in _get_outputs
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/joblib/parallel.py", line 2072 in __call__
  File "/Users/selman/projects/squidpy/src/squidpy/_utils.py", line 192 in wrapper
  File "/Users/selman/projects/squidpy/tests/utils/test_parallelize.py", line 104 in test_parallelize
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/python.py", line 166 in pytest_pyfunc_call
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/python.py", line 1720 in runtest
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/runner.py", line 179 in pytest_runtest_call
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/runner.py", line 245 in <lambda>
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/runner.py", line 353 in from_call
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/runner.py", line 244 in call_and_report
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/runner.py", line 137 in runtestprotocol
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/runner.py", line 118 in pytest_runtest_protocol
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/main.py", line 396 in pytest_runtestloop
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/main.py", line 372 in _main
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/main.py", line 318 in wrap_session
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/main.py", line 365 in pytest_cmdline_main
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/config/__init__.py", line 199 in main
  File "/Users/selman/miniforge3/envs/squidpy/lib/python3.13/site-packages/_pytest/config/__init__.py", line 223 in console_main
  File "/Users/selman/miniforge3/envs/squidpy/bin/pytest", line 7 in <module>

Extension modules: numpy._core._multiarray_umath, numpy.linalg._umath_linalg, _cyutility, scipy._cyutility, scipy._lib._ccallback_c, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, charset_normalizer.md, scipy.sparse._sparsetools, _csparsetools, scipy.sparse._csparsetools, yaml._yaml, psutil._psutil_osx, markupsafe._speedups, scipy._lib._uarray._uarray, scipy.special._ufuncs_cxx, scipy.special._ellip_harm_2, scipy.special._special_ufuncs, scipy.special._gufuncs, scipy.special._ufuncs, scipy.special._specfun, scipy.special._comb, scipy.fftpack.convolve, h5py._errors, h5py.defs, h5py._objects, h5py.h5, h5py.utils, h5py.h5t, h5py.h5s, h5py.h5ac, h5py.h5p, h5py.h5r, h5py._npystrings, h5py._proxy, h5py._conv, h5py.h5z, h5py.h5a, h5py.h5d, h5py.h5ds, h5py.h5g, h5py.h5i, h5py.h5o, h5py.h5f, h5py.h5fd, h5py.h5pl, h5py.h5l, h5py._selector, numcodecs.compat_ext, numcodecs.blosc, numcodecs.zstd, numcodecs.lz4, numcodecs._shuffle, numcodecs.jenkins, google_crc32c._crc32c, numcodecs.vlen, numcodecs.fletcher32, backports.zstd._zstd, pyarrow.lib, pandas._libs.tslibs.ccalendar, pandas._libs.tslibs.np_datetime, pandas._libs.tslibs.dtypes, pandas._libs.tslibs.base, pandas._libs.tslibs.nattype, pandas._libs.tslibs.timezones, pandas._libs.tslibs.fields, pandas._libs.tslibs.timedeltas, pandas._libs.tslibs.tzconversion, pandas._libs.tslibs.timestamps, pandas._libs.properties, pandas._libs.tslibs.offsets, pandas._libs.tslibs.strptime, pandas._libs.tslibs.parsing, pandas._libs.tslibs.conversion, pandas._libs.tslibs.period, pandas._libs.tslibs.vectorized, pandas._libs.ops_dispatch, pandas._libs.missing, pandas._libs.hashtable, pandas._libs.algos, pandas._libs.interval, pandas._libs.lib, pyarrow._compute, pandas._libs.ops, pandas._libs.hashing, pandas._libs.arrays, pandas._libs.tslib, pandas._libs.sparse, pandas._libs.internals, pandas._libs.indexing, pandas._libs.index, pandas._libs.writers, pandas._libs.join, pandas._libs.window.aggregations, pandas._libs.window.indexers, pandas._libs.reshape, pandas._libs.groupby, pandas._libs.json, pandas._libs.parsers, pandas._libs.testing, scipy.io.matlab._mio_utils, scipy.io.matlab._streams, scipy.io.matlab._mio5_utils, numba.core.typeconv._typeconv, numba._helperlib, numba._dynfunc, numba._dispatcher, numba.core.runtime._nrt_python, numba.np.ufunc._internal, numba.experimental.jitclass._box, shapely.lib, shapely._geos, shapely._geometry_helpers, pyproj._compat, pyproj._context, pyproj._network, pyproj._version, pyproj._geod, pyproj.list, pyproj._crs, pyproj.database, pyproj._transformer, pyproj._sync, PIL._imaging, kiwisolver._cext, sklearn.__check_build._check_build, scipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg.cython_lapack, scipy.linalg._cythonized_array_utils, scipy.linalg._solve_toeplitz, scipy.linalg._batched_linalg, scipy.linalg._decomp_lu_cython, scipy.linalg._matfuncs_schur_sqrtm, scipy.linalg._matfuncs_expm, scipy.linalg._linalg_pythran, scipy.linalg.cython_blas, scipy.linalg._decomp_update, scipy.sparse.linalg._dsolve._superlu, scipy.sparse.linalg._eigen.arpack._arpacklib, scipy.sparse.linalg._propack, scipy.spatial._ckdtree, scipy._lib.messagestream, scipy.spatial._qhull, scipy.spatial._voronoi, scipy.spatial._hausdorff, scipy.spatial._distance_wrap, scipy.spatial.transform._rotation_cy, scipy.spatial.transform._rigid_transform_cy, scipy.optimize._group_columns, scipy.optimize._trlib._trlib, scipy.optimize._lbfgsb, _moduleTNC, scipy.optimize._moduleTNC, scipy.optimize._slsqplib, scipy.optimize._minpack, scipy.optimize._lsq.givens_elimination, scipy.optimize._zeros, scipy.linalg._decomp_interpolative, scipy.optimize._bglu_dense, scipy.optimize._lsap, scipy.optimize._direct, scipy.integrate._odepack, scipy.integrate._quadpack, scipy.integrate._vode, scipy.integrate._dop, scipy.interpolate._fitpack, scipy.interpolate._dfitpack, scipy.interpolate._dierckx, scipy.interpolate._ppoly, scipy.interpolate._interpnd, scipy.interpolate._rbfinterp_pythran, scipy.interpolate._rgi_cython, scipy.special.cython_special, scipy.stats._stats, scipy.stats._biasedurn, scipy.stats._stats_pythran, scipy.stats._levy_stable.levyst, scipy.stats._ansari_swilk_statistics, scipy.sparse.csgraph._tools, scipy.sparse.csgraph._shortest_path, scipy.sparse.csgraph._traversal, scipy.sparse.csgraph._min_spanning_tree, scipy.sparse.csgraph._flow, scipy.sparse.csgraph._matching, scipy.sparse.csgraph._reordering, scipy.stats._sobol, scipy.stats._qmc_cy, scipy.stats._rcont.rcont, scipy.stats._qmvnt_cy, scipy.ndimage._nd_image, scipy.ndimage._rank_filter_1d, _ni_label, scipy.ndimage._ni_label, sklearn._cyutility, sklearn.utils._isfinite, sklearn.utils.sparsefuncs_fast, sklearn.utils.murmurhash, sklearn.utils._openmp_helpers, sklearn.utils._random, igraph._igraph, leidenalg._c_leiden, torch._C, torch._C._dynamo.autograd_compiler, torch._C._dynamo.eval_frame, torch._C._dynamo.guards, torch._C._dynamo.utils, torch._C._fft, torch._C._linalg, torch._C._nested, torch._C._nn, torch._C._sparse, torch._C._special, skimage.measure._moments_cy, skimage.measure._find_contours_cy, skimage.measure._marching_cubes_lewiner_cy, numba.mviewbuf, numba.types.itertools, requests.packages.charset_normalizer.md, requests.packages.chardet.md, scipy.cluster._vq, scipy.cluster._hierarchy, scipy.cluster._optimal_leaf_ordering, skimage.segmentation._slic, skimage.transform._warps_cy, skimage.filters._multiotsu, skimage.morphology._misc_cy, skimage.measure._ccomp, _skeletonize_lee_cy, skimage.morphology._skeletonize_lee_cy, skimage.morphology._skeletonize_various_cy, skimage._shared.geometry, skimage.measure._pnpoly, skimage.morphology._convex_hull, skimage.morphology._grayreconstruct, skimage.morphology._extrema_cy, skimage.morphology._flood_fill_cy, skimage.morphology._max_tree, skimage.segmentation._felzenszwalb_cy, sklearn.metrics.cluster._expected_mutual_info_fast, sklearn.metrics._dist_metrics, sklearn.metrics._pairwise_distances_reduction._datasets_pair, sklearn.utils._cython_blas, sklearn.metrics._pairwise_distances_reduction._base, sklearn.metrics._pairwise_distances_reduction._middle_term_computer, sklearn.utils._heap, sklearn.utils._sorting, sklearn.metrics._pairwise_distances_reduction._argkmin, sklearn.metrics._pairwise_distances_reduction._argkmin_classmode, sklearn.utils._vector_sentinel, sklearn.metrics._pairwise_distances_reduction._radius_neighbors, sklearn.metrics._pairwise_distances_reduction._radius_neighbors_classmode, sklearn.metrics._pairwise_fast, sklearn.preprocessing._csr_polynomial_expansion, sklearn.preprocessing._target_encoder_fast, sklearn.neighbors._partition_nodes, sklearn.neighbors._ball_tree, sklearn.neighbors._kd_tree, sklearn.utils.arrayfuncs, sklearn.utils._seq_dataset, sklearn.linear_model._cd_fast, _loss, sklearn._loss._loss, sklearn.linear_model._sag_fast, sklearn.svm._liblinear, sklearn.svm._libsvm, sklearn.svm._libsvm_sparse, sklearn.utils._weight_vector, sklearn.linear_model._sgd_fast, sklearn.decomposition._online_lda_fast, sklearn.decomposition._cdnmf_fast, sklearn.tree._utils, sklearn.neighbors._quad_tree, sklearn.tree._tree, sklearn.tree._partitioner, sklearn.tree._splitter, sklearn.tree._criterion, sklearn.ensemble._gradient_boosting, sklearn.ensemble._hist_gradient_boosting.common, sklearn.ensemble._hist_gradient_boosting._gradient_boosting, sklearn.ensemble._hist_gradient_boosting._binning, sklearn.ensemble._hist_gradient_boosting._bitset, sklearn.ensemble._hist_gradient_boosting.histogram, sklearn.ensemble._hist_gradient_boosting._predictor, sklearn.ensemble._hist_gradient_boosting.splitting, sklearn.utils._fast_dict, sklearn.cluster._hierarchical_fast, sklearn.cluster._k_means_common, sklearn.cluster._k_means_elkan, sklearn.cluster._k_means_lloyd, sklearn.cluster._k_means_minibatch, sklearn.cluster._dbscan_inner, sklearn.cluster._hdbscan._tree, sklearn.cluster._hdbscan._linkage, sklearn.cluster._hdbscan._reachability, sklearn._isotonic, sklearn.manifold._barnes_hut_tsne, sklearn.manifold._utils, skimage._shared.transform, skimage.feature._texture, skimage.segmentation._watershed_cy, _cffi_backend (total: 309)
[1]    94946 abort      pytest tests/utils/test_parallelize.py
Versions

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.