Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG: segfault on i386 in special test_kolmogorov.py TestSmirnovp #16700

Open
drew-parsons opened this issue Jul 25, 2022 · 1 comment
Open

BUG: segfault on i386 in special test_kolmogorov.py TestSmirnovp #16700

drew-parsons opened this issue Jul 25, 2022 · 1 comment
Labels
defect A clear bug or issue that prevents SciPy from being installed or used as expected scipy.special

Comments

@drew-parsons
Copy link
Contributor

drew-parsons commented Jul 25, 2022

Describe your issue.

As discussed in #16646 , a build of scipy 1.8.1 for i386 with debian unstable crashes when running tests. This segfault is new, the build was previously successful. The segfault started after trying to apply the pythran patch from #16646, but there's no reason to think that patch itself triggered it. Debian recently switched from gcc 11 to gcc 12, so possibly that is related.

Reproducing Code Example

Bug occurs when running tests during a debian build on i386, so reproduced (on a debian i386 system) with

apt-get source scipy
cd scipy-1.8.1
dpkg-buildpackage

If the problem is universal, it might show up with

./runtests.py -v -s special -- -k "TestSmirnovp"

Can check after build is complete with

python3 ./runtests.py -v -n -s special -- -k "TestSmirnovp"


### Error message

```shell
../../.pybuild/cpython3_3.10_scipy/build/scipy/special/tests/test_kolmogorov.py::TestSmirnovp::test_basic PASSED [ 80%]
../../.pybuild/cpython3_3.10_scipy/build/scipy/special/tests/test_kolmogorov.py::TestSmirnovp::test_oneminusoneovern Fatal Python error: Floating point exception

Current thread 0xf7c02180 (most recent call first):
  File "/home/dparsons/pythran/scipy-1.8.1/.pybuild/cpython3_3.10_scipy/build/scipy/special/_testutils.py", line 213 in eval_func_at_params
  File "/home/dparsons/pythran/scipy-1.8.1/.pybuild/cpython3_3.10_scipy/build/scipy/special/_testutils.py", line 227 in check
  File "/home/dparsons/pythran/scipy-1.8.1/.pybuild/cpython3_3.10_scipy/build/scipy/special/tests/test_kolmogorov.py", line 213 in test_oneminusoneovern
  File "/usr/lib/python3/dist-packages/_pytest/python.py", line 192 in pytest_pyfunc_call
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/lib/python3/dist-packages/_pytest/python.py", line 1761 in runtest
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 166 in pytest_runtest_call
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 259 in <lambda>
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 338 in from_call
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 258 in call_runtest_hook
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 219 in call_and_report
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 130 in runtestprotocol
  File "/usr/lib/python3/dist-packages/_pytest/runner.py", line 111 in pytest_runtest_protocol
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/lib/python3/dist-packages/_pytest/main.py", line 347 in pytest_runtestloop
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/lib/python3/dist-packages/_pytest/main.py", line 322 in _main
  File "/usr/lib/python3/dist-packages/_pytest/main.py", line 268 in wrap_session
  File "/usr/lib/python3/dist-packages/_pytest/main.py", line 315 in pytest_cmdline_main
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 39 in _multicall
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 80 in _hookexec
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 265 in __call__
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 164 in main
  File "/home/dparsons/pythran/scipy-1.8.1/.pybuild/cpython3_3.10_scipy/build/scipy/_lib/_testutils.py", line 69 in __call__
  File "/home/dparsons/pythran/scipy-1.8.1/runtests.py", line 318 in main
  File "/home/dparsons/pythran/scipy-1.8.1/runtests.py", line 567 in <module>

Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg.lapack_lite, 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, scipy._lib._ccallback_c, scipy._lib._fpumode, scipy._lib._test_ccallback, scipy.sparse._sparsetools, scipy.sparse._csparsetools, 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.spatial._ckdtree, scipy._lib.messagestream, scipy.spatial._qhull, scipy.spatial._voronoi, scipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg._cythonized_array_utils, scipy.linalg._flinalg, scipy.linalg._solve_toeplitz, scipy.linalg._matfuncs_sqrtm_triu, scipy.linalg.cython_blas, scipy.linalg.cython_lapack, scipy.linalg._decomp_update, scipy.spatial._distance_wrap, scipy.spatial._hausdorff, scipy.special._ufuncs_cxx, scipy.special._ufuncs, scipy.special._specfun, scipy.special._comb, scipy.special._ellip_harm_2, scipy.spatial.transform._rotation, scipy.cluster._vq, scipy.cluster._hierarchy, scipy.cluster._optimal_leaf_ordering, matplotlib._c_internal_utils, PIL._imaging, matplotlib._path, kiwisolver, matplotlib._image, scipy._lib._uarray._uarray, scipy.fftpack.convolve, scipy.sparse.linalg._isolve._iterative, scipy.sparse.linalg._dsolve._superlu, scipy.sparse.linalg._eigen.arpack._arpack, scipy.optimize._minpack2, scipy.optimize._group_columns, 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.__nnls, scipy.optimize._highs.cython.src._highs_wrapper, scipy.optimize._highs._highs_wrapper, scipy.optimize._highs.cython.src._highs_constants, scipy.optimize._highs._highs_constants, scipy.linalg._interpolative, scipy.optimize._bglu_dense, scipy.optimize._lsap_module, scipy.integrate._odepack, scipy.integrate._quadpack, scipy.integrate._vode, scipy.integrate._dop, scipy.integrate._lsoda, scipy.integrate._test_odeint_banded, scipy.interpolate._fitpack, scipy.interpolate.dfitpack, scipy.interpolate._bspl, scipy.interpolate._ppoly, scipy.interpolate.interpnd, scipy.interpolate._rbfinterp_pythran, scipy.ndimage._nd_image, _ni_label, scipy.ndimage._ni_label, scipy.special.cython_special, scipy.stats._stats, beta_ufunc, scipy.stats._boost.beta_ufunc, binom_ufunc, scipy.stats._boost.binom_ufunc, nbinom_ufunc, scipy.stats._boost.nbinom_ufunc, hypergeom_ufunc, scipy.stats._boost.hypergeom_ufunc, scipy.stats._biasedurn, scipy.stats._hypotests_pythran, scipy.stats._statlib, scipy.stats._mvn, scipy.stats._sobol, scipy.stats._qmc_cy, scipy.stats._unuran.unuran_wrapper, scipy.io.matlab._mio_utils, scipy.io.matlab._streams, scipy.io.matlab._mio5_utils, scipy.io._test_fortran, scipy.ndimage._ctest, _cytest, scipy.ndimage._cytest, scipy.odr.__odrpack, scipy.optimize.cython_optimize._zeros, scipy.signal._sigtools, scipy.signal._max_len_seq_inner, scipy.signal._upfirdn_apply, scipy.signal._spline, scipy.signal._sosfilt, scipy.signal._spectral, scipy.signal._peak_finding_utils, scipy.sparse.linalg._propack._spropack, scipy.sparse.linalg._propack._dpropack, scipy.sparse.linalg._propack._cpropack, scipy.sparse.linalg._propack._zpropack, scipy.special._test_round, scipy._lib._test_deprecation_def, scipy._lib._test_deprecation_call, matplotlib._qhull (total: 135)
Floating point exception
make[1]: *** [debian/rules:48: execute_after_dh_auto_install] Error 136

SciPy/NumPy/Python version information

1.8.1 1.21.5 sys.version_info(major=3, minor=10, micro=5, releaselevel='final', serial=0)

@drew-parsons drew-parsons added the defect A clear bug or issue that prevents SciPy from being installed or used as expected label Jul 25, 2022
@rgommers
Copy link
Member

rgommers commented Oct 4, 2022

I think that that functionality was already problematic on 32-bit indeed, we simply xfailed the test but never fixed the problem: gh-9509.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
defect A clear bug or issue that prevents SciPy from being installed or used as expected scipy.special
Projects
None yet
Development

No branches or pull requests

3 participants