quimb icon indicating copy to clipboard operation
quimb copied to clipboard

Fatal Python error: Segmentation fault

Open HomoY opened this issue 5 months ago • 1 comments

What happened?

Hi,

I was using quimb to construct tensor network and contract it, my code from -

def roundHM():
    .....
    vec0_tn = qtn.TensorNetwork(...)
    tensors = qtn.TensorNetwork(...)
    for val in samples:
        .....
        for j in range(len(CostH.s)):
            ....
            vecji_tn = qtn.TensorNetwork(...)
            x_vji = qtn.TensorNetwork([vec0_tn, tensors, vecji_tn], virtual= True) # line 661
            result_vji = x_vji.contract()

The samples and len(CostH.s) can be large, so this will introduce many running of line 661. The segmentation fault occurs occasionally in my simulations (very strange!). I also tried "vec0_tn.copy()" or "vec0_tn.copy(deep=True)". The problem still exists.

I submitted couples of jobs from terminals simultaneously as:

ulimit -v $((10 * 1024 * 1024)) && taskset -c 0-2 nohup python -u ./simulations/hu.py > /home/me/test/test.log 2>&1 & disown

What did you expect to happen?

No occasional segfault

Minimal Complete Verifiable Example

Its hard to include as it appears occasionally


Relevant log output

Fatal Python error: Segmentation fault

Current thread 0x00007303ba02c600 (most recent call first):
  File "/home/me/anaconda3/envs/test/lib/python3.10/site-packages/quimb/tensor/tensor_core.py", line 1732 in add_owner
  File "/home/me/anaconda3/envs/test/lib/python3.10/site-packages/quimb/tensor/tensor_core.py", line 4327 in add_tensor
  File "/home/me/anaconda3/envs/test/lib/python3.10/site-packages/quimb/tensor/tensor_core.py", line 4347 in add_tensor_network
  File "/home/me/anaconda3/envs/test/lib/python3.10/site-packages/quimb/tensor/tensor_core.py", line 4374 in add
  File "/home/me/anaconda3/envs/test/lib/python3.10/site-packages/quimb/tensor/tensor_core.py", line 4106 in __init__
  File "/home/me/anaconda3/envs/test/lib/python3.10/site-packages/hu.py", line 661 in roundHM

Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, 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, cytoolz.utils, cytoolz.itertoolz, cytoolz.functoolz, cytoolz.dicttoolz, cytoolz.recipes, scipy._lib._ccallback_c, scipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg.cython_lapack, scipy.linalg._cythonized_array_utils, scipy.linalg._solve_toeplitz, scipy.linalg._decomp_lu_cython, scipy.linalg._matfuncs_sqrtm_triu, scipy.linalg._matfuncs_expm, scipy.linalg._linalg_pythran, scipy.linalg.cython_blas, scipy.linalg._decomp_update, scipy.sparse._sparsetools, _csparsetools, scipy.sparse._csparsetools, scipy.sparse.linalg._dsolve._superlu, scipy.sparse.linalg._eigen.arpack._arpack, scipy.sparse.linalg._propack._spropack, scipy.sparse.linalg._propack._dpropack, scipy.sparse.linalg._propack._cpropack, scipy.sparse.linalg._propack._zpropack, 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.optimize._group_columns, scipy._lib.messagestream, scipy.optimize._trlib._trlib, scipy.optimize._lbfgsb, _moduleTNC, scipy.optimize._moduleTNC, scipy.optimize._cobyla, scipy.optimize._slsqp, scipy.optimize._minpack, scipy.optimize._lsq.givens_elimination, scipy.optimize._zeros, scipy.optimize._cython_nnls, scipy._lib._uarray._uarray, scipy.special._ufuncs_cxx, scipy.special._ufuncs, scipy.special._specfun, scipy.special._comb, scipy.special._ellip_harm_2, scipy.linalg._decomp_interpolative, scipy.optimize._bglu_dense, scipy.optimize._lsap, scipy.spatial._ckdtree, scipy.spatial._qhull, scipy.spatial._voronoi, scipy.spatial._distance_wrap, scipy.spatial._hausdorff, scipy.spatial.transform._rotation, scipy.optimize._direct, yaml._yaml, numba.core.typeconv._typeconv, numba._helperlib, numba._dynfunc, numba._dispatcher, numba.core.typing.builtins.itertools, numba.cpython.builtins.math, numba.core.runtime._nrt_python, numba.np.ufunc._internal, numba.experimental.jitclass._box, psutil._psutil_linux, psutil._psutil_posix, numba.cpython.mathimpl.math, numba.cpython.mathimpl.sys, scipy.ndimage._nd_image, scipy.ndimage._rank_filter_1d, _ni_label, scipy.ndimage._ni_label, scipy.integrate._odepack, scipy.integrate._quadpack, scipy.integrate._vode, scipy.integrate._dop, scipy.integrate._lsoda, dimod.cyvariables, dimod.cyutilities, dimod.cyqmbase.cyqmbase_float32, dimod.cyqmbase.cyqmbase_float64, dimod.binary.cybqm.cybqm_float64, dimod.binary.cybqm.cybqm_float32, dimod.quadratic.cyqm.cyqm_float64, dimod.quadratic.cyqm.cyqm_float32, dimod.constrained.cyexpression, dimod.discrete.cydiscrete_quadratic_model, dimod.constrained.cyconstrained, dimod.cylp, dwave.samplers.greedy.descent, dwave.samplers.random.cyrandom, dwave.samplers.sa.simulated_annealing, dwave.samplers.tabu.tabu_search, dwave.samplers.tree.sample, dwave.samplers.tree.solve, dwave.samplers.tree.utilities, numba.cpython.hashing.math, numba.cpython.hashing.sys, numba.cpython.numbers.math, numba.np.arraymath.math, numba.core.typing.cmathdecl.cmath, numba.core.typing.mathdecl.math, _cvxcore, scipy.signal._sigtools, scipy.signal._max_len_seq_inner, scipy.signal._upfirdn_apply, scipy.signal._spline, scipy.interpolate._fitpack, scipy.interpolate._dfitpack, scipy.interpolate._dierckx, scipy.interpolate._ppoly, scipy.interpolate._interpnd, scipy.interpolate._rbfinterp_pythran, scipy.interpolate._rgi_cython, scipy.interpolate._bspl, scipy.signal._sosfilt, scipy.special.cython_special, scipy.stats._stats, scipy.stats._sobol, scipy.stats._qmc_cy, scipy.stats._biasedurn, scipy.stats._stats_pythran, scipy.stats._levy_stable.levyst, scipy.stats._ansari_swilk_statistics, scipy.stats._mvn, scipy.stats._rcont.rcont, scipy.signal._peak_finding_utils, _ecos, _scs_direct, markupsafe._speedups (total: 150)

Anything else we need to know?

No response

Environment

Python 3.10.18 Ubuntu 24.04.2 LTS quimb Version: 1.11.1

Other pacakages: alembic 1.16.4 asttokens 2.4.1 autoray 0.7.2 bayesian-optimization 1.4.0 black 25.1.0 clarabel 0.7.1 click 8.2.1 cma 4.2.0 cmaes 0.11.1 colorama 0.4.0 colorlog 6.9.0 comm 0.2.2 contourpy 1.3.2 cotengra 0.7.5 cvxpy 1.7.0 cycler 0.12.1 cytoolz 1.0.1 debugpy 1.8.1 decorator 5.1.1 Deprecated 1.2.14 dimod 0.12.14 directsearch 1.0 dwave-neal 0.6.0 dwave-samplers 1.2.0 dwave-tabu 0.5.0 ecos 2.0.13 exceptiongroup 1.2.1 executing 2.0.1 fonttools 4.59.0 gibbssdp 0.0.1 gibbssdp_utils 0.1.0 greenlet 3.2.3 ipykernel 6.29.4 ipython 8.24.0 jedi 0.19.1 Jinja2 3.1.6 joblib 1.5.1 jupyter_client 8.6.1 jupyter_core 5.7.2 kahypar 1.3.5 kiwisolver 1.4.8 llvmlite 0.44.0 Mako 1.3.10 MarkupSafe 3.0.2 matplotlib 3.10.3 matplotlib-inline 0.1.7 maturin 1.5.1 mypy_extensions 1.1.0 nest-asyncio 1.6.0 networkx 3.2.1 nevergrad 1.0.11 numba 0.61.2 numpy 1.26.4 optuna 4.2.1 osqp 1.0.4 packaging 24.0 pandas 2.3.1 parso 0.8.4 pathspec 0.12.1 pgd_utils 0.1.0 pillow 11.3.0 pip 25.1 platformdirs 4.3.8 prompt-toolkit 3.0.43 psutil 5.9.8 pure-eval 0.2.2 pybind11 2.12.0 Pygments 2.17.2 pyparsing 3.2.3 pyqubo 1.4.0 python-dateutil 2.9.0.post0 pytz 2025.2 PyYAML 6.0.2 pyzmq 26.0.3 qdldl 0.1.7.post2 SciencePlots 2.1.1 scikit-learn 1.7.0 scipy 1.15.3 scs 3.2.4.post1 setuptools 78.1.1 six 1.17.0 sparse_sdp 0.1.0 SQLAlchemy 2.0.41 ssdppy 0.0.1 stack-data 0.6.3 threadpoolctl 3.6.0 tomli 2.0.1 toolz 0.12.1 tornado 6.4 tqdm 4.67.1 traitlets 5.14.3 typing_extensions 4.14.1 tzdata 2025.2 wcwidth 0.2.13 wheel 0.45.1 wrapt 1.16.0

HomoY avatar Aug 13 '25 23:08 HomoY

Hi @HomoY, I'm afraid I don't really have any ideas nor any way to debug this. Leaving open in case others have a similar problem though.

jcmgray avatar Sep 01 '25 19:09 jcmgray