-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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: Failing tests on multiple architectures when building scipy 1.10.0 for Fedora #17912
Comments
For s390x failures in |
I can try that tomorrow, thank you for the suggestion. |
I have re-enabled tests for s390x: revert patch I have used on v1.10.0 tag: Build log for s390x
The tests are still failing and I didn't notice any difference in error messages either. So it seems to me that #17038 did not cause these errors. |
Ok good to know, thanks! I'd venture a guess that the next suspect would be the build system change between 1.8.x (distutils) and 1.10.x (meson). |
@psimovec I checked in an It looks to me like you have PROPACK issues specific to your setup given the massive number of warnings like this in your build log:
I think combining PROPACK with different linalg backends can be painful too--what's going on with the I know @h-vetinari saw a bunch of testing issues on the I suppose if it gets too time consuming in the short term, there is always |
That should be the default?
We keep a list of the failures in https://github.com/conda-forge/scipy-feedstock/blob/main/recipe/meta.yaml, though the only relevant ones (for our CI) are:
And as Tyler mentioned, PROPACK used to be an issues (leading to it being deactivate by default), but with 1.10, those are passing now as well.
(With my scipy hat on,) I'm surprised that one arch - especially one bordering on being obsolete - would block an entire release.
Not sure if there are meaningful differences, but in conda-forge we use
(minus some options I'm skipping over).
A small request: could you please use detail tags for long error/stack traces?
This leads to Optional
|
@tylerjereddy I have tried on i686, ~30 PROPACK related tests fail additionally, I would expect them to be skipped as PROPACK is disabled. In our test run we use: %check
# check against the reference BLAS/LAPACK
export FLEXIBLAS=netlib I have tried removing After disabling this test, there were no more i686 specific test failures. x86_no_netlib_disable_johnsonsu |
@psimovec Can you perhaps summarize what you'd minimally need on the SciPy side to move forward with Fedora? Perhaps we could prioritize things that you'd consider as "definitely blockers," vs. things you may be able to live with for a while at least (more exotic archs + linalg backend combos?). |
Basically, I'm just trying to prioritize a bit so we can look at another bug-fix patch release soon-ish. |
@tylerjereddy Skip/xfail for |
Does Fedora still officially support 32-bit Linux? Are there Docker containers I could pull from Dockerhub for this? For Debian it is easy to find: https://hub.docker.com/r/i386/debian/ Maybe I'm just doing the search incorrectly for Fedora? |
I wouldn't say Fedora officially supports 32-bit Linux, but there is support for multilib packages (for example 32-bit for wine and steam + their dependencies). It is encouraged to remove 32-bit architecture from leaf packages that are not a dependence of multilib packages. I have considered the option of removing i686 scipy, but scipy is recursively a build time dependency of all packages. And it doesn't seem realistic in practice to get rid of the 32-bit architecture for scipy at the moment, as it would force at least hundreds of other packages to drop 32-bit support too, even if we cut the dependency tree somewhere. We use mock [1] to build packages for different architectures, and specifically i686 is possible to do even from x86_64 machine (or container) with Fedora. |
Not sure if this helps within the constraints of your infra, but scipy is an optional dependency of pandas, which is an optional dependency of hypothesis, which is an optional dependency of pytest |
I tried messing around with Or maybe I still don't fully understand So, I'm probably not going to go much deeper here for now--I'll start on a hopefully-final series of backports for the next point release. I'd suggest that we really need a super-easy way to debug/reproduce what is going on here if it is to be addressed by the SciPy team. We may also need to know the version of OpenBLAS used by |
An additional possibly relevant test failure I've noticed with 1.10.0 on an i686 RHEL8 system, with Python 3.11.2 and Numpy 1.23.5 is the
Full snippet:
|
Ok, I'll see if I can circle back here for |
I am using this mock config file for CentOS stream 8 to emulate the RHEL8 failures, placed in ~/.config/mock/c8s-i686.cfg of my Fedora machine: Config
However Python3.11 and Numpy need to be compiled manually first inside the chroot. Adding dnf or yum in the chroot should be done with something like:
and then shelling with network would be:
Edit: Added some development packages to be installed at the chroot initialization in the config file. |
This is still a problem in v1.10.1 on debian arm64. |
Describe your issue.
I am updating Fedora package for scipy 1.8.3 -> 1.10.0
(We skipped version 1.9, as there were test failures on i686 architecture, as reported in #17213 , and disabling the tests led to another tests failing)
I did 65+ builds, as disabling some tests led to other tests failing directly or being flaky.
For first build, all of important failed tests and error messages are in i686-build.log and s390x-build.log.
For rest of the builds - rest of archived logs ( as logs in koji will expire in <14 days) : https://drive.google.com/file/d/1op-FgNp1bHHdJB8GAEWowiBrYo5GwDWG/view?usp=sharing (5.3MB compressed, 943MB uncompressed)
(check
kojilogs/noarch-<taskID>/<architecture>-*/build.log
in the archive)You can also check scipy-notes.txt to see which tests were disabled at specific moment/in which tasks the tests failed.
Test failures in first build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=96702545
=========================== short test summary info ============================
all architectures s390x-build.log or i686-build.log
FAILED scipy/integrate/tests/test_banded_ode_solvers.py::test_banded_ode_solvers
FAILED scipy/integrate/tests/test_integrate.py::TestOde::test_vode - Assertio...
FAILED scipy/integrate/tests/test_integrate.py::TestOde::test_zvode - Asserti...
FAILED scipy/integrate/tests/test_integrate.py::TestOde::test_concurrent_ok
FAILED scipy/integrate/tests/test_integrate.py::TestComplexOde::test_vode - A...
FAILED scipy/integrate/tests/test_integrate.py::TestVODECheckParameterUse::test_no_params
FAILED scipy/integrate/tests/test_integrate.py::TestVODECheckParameterUse::test_one_scalar_param
FAILED scipy/integrate/tests/test_integrate.py::TestVODECheckParameterUse::test_two_scalar_params
FAILED scipy/integrate/tests/test_integrate.py::TestVODECheckParameterUse::test_vector_param
FAILED scipy/integrate/tests/test_integrate.py::TestVODECheckParameterUse::test_warns_on_failure
FAILED scipy/integrate/tests/test_integrate.py::TestZVODECheckParameterUse::test_no_params
FAILED scipy/integrate/tests/test_integrate.py::TestZVODECheckParameterUse::test_one_scalar_param
FAILED scipy/integrate/tests/test_integrate.py::TestZVODECheckParameterUse::test_two_scalar_params
FAILED scipy/integrate/tests/test_integrate.py::TestZVODECheckParameterUse::test_vector_param
FAILED scipy/integrate/tests/test_integrate.py::TestZVODECheckParameterUse::test_warns_on_failure
i686 unique, same as #17213, i686-build.log
FAILED scipy/sparse/linalg/tests/test_propack.py::test_examples[False-float64]
FAILED scipy/sparse/linalg/tests/test_propack.py::test_examples[True-float32]
FAILED scipy/sparse/linalg/tests/test_propack.py::test_shifts[float32-10]
FAILED scipy/sparse/linalg/tests/test_propack.py::test_shifts[float64-10]
aarch64 + s390x #17859 most likely solved here
FAILED scipy/sparse/linalg/_isolve/tests/test_iterative.py::test_maxiter_worsening[lgmres]
s390x only s390x-build.log, Comment about possible suspect -> #17038
FAILED scipy/interpolate/tests/test_bsplines.py::TestInterop::test_splint - A...
FAILED scipy/interpolate/tests/test_fitpack.py::TestSplder::test_splantider_vs_splint
FAILED scipy/interpolate/tests/test_fitpack.py::test_dblint - AssertionError:
FAILED scipy/interpolate/tests/test_fitpack2.py::TestUnivariateSpline::test_derivative_and_antiderivative
FAILED scipy/interpolate/tests/test_fitpack2.py::TestLSQBivariateSpline::test_integral
FAILED scipy/interpolate/tests/test_interpolate.py::TestPPoly::test_integrate
FAILED scipy/stats/tests/test_distributions.py::TestLevyStable::test_cdf_nolan_samples[pct_range0-alpha_range0-beta_range0]
FAILED scipy/stats/tests/test_distributions.py::TestLevyStable::test_cdf_nolan_samples[pct_range1-alpha_range1-beta_range1]
Test failures in following builds:
These tests also failed at some point, in different builds, when specific tests were enabled/disabled (more info in the attachment)
If you think it is worth to look at them, you can find their error messages in log files I have mentioned. Also, you can check scipy-notes.txt to see in which tasks the tests failed and which tests were disabled/enabled at the moment.
x86_64, s390x, ppc64le
scipy/sparse/linalg/tests/test_propack.py::test_examples[True-complex64]
x86_64
scipy/stats/tests/test_multivariate.py::TestWishart::test_frozen - Ass...
aarch64
scipy/sparse/tests/test_construct.py::TestConstructUtils::test_concatenate_int32_overflow
i686: #17213 possibly the same behaviour as disabling i686 tests in this Issue, on 1.9.3
scipy/stats/tests/test_distributions.py::TestLevyStable::test_cdf_nolan_samples[pct_range0-alpha_range0-beta_range0]
scipy/stats/tests/test_distributions.py::TestNct::test_broadcasting
scipy/sparse/tests/test_base.py::Test64Bit::test_resiliency_all_32[TestBSR-test_mean]
scipy/sparse/tests/test_base.py::Test64Bit::test_resiliency_all_32[TestCSC-test_sum]
scipy/sparse/tests/test_base.py::Test64Bit::test_resiliency_all_32[TestDOK-test_sum]
scipy/sparse/tests/test_base.py::TestCOO::test_mu - AssertionError:
scipy/sparse/tests/test_base.py::TestCOO::test_sum - AssertionError:
scipy/sparse/tests/test_base.py::TestCSR::test_mu - AssertionError:
scipy/sparse/tests/test_base.py::TestCSR::test_sum - AssertionError:
scipy/stats/tests/test_continuous_basic.py::test_methods_with_lists[levy-args62-isf]
scipy/stats/tests/test_continuous_basic.py::test_methods_with_lists[nct-args76-pdf]
scipy/sparse/tests/test_base.py::TestCSR::test_fancy_assignment_dtypes
(following tests also failed at some point, but I don't have the logs right now)
test_resiliency_random[TestCSC-test_sum_dtype]
test_boost
test_entropy_broadcasting
test_svdp
Reproducing Code Example
Error message
If you need additional info, search
_ test_name
in build.log files to see Error messages. (for example search_ test_banded_ode_solvers
)i686-build.log
s390x-build.log
Or you can check rest of the logs in this archive:
scipylogs.tar.xz
Errors messages
s390x only failures:
i686 only failures:
SciPy/NumPy/Python version information
scipy1.10.0/numpy1.24.1/python3.11.1
The text was updated successfully, but these errors were encountered: