Intermittent failures in `cholesky_solve` and `cholesky_solve_static`
- Dominant language
- Rust
- Stars
- 4.8k
- Forks
- 565
- PR merge metrics
- No merged PRs in 30d
Description
I noticed this on the CI run for #678. The CI was running commit 8bce398653395c219edf85dcb4d95c3ff976a69f on `cargo 1.40.0-beta (5da4b4d47 2019-10-28)`. I was able to reproduce it locally on both `cargo 1.40.0-beta (5da4b4d47 2019-10-28)` and `cargo 1.38.0 (23ef9a4ef 2019-08-20)` on commmit 31ef5f0ab02c6ecf279867f07cd63e16cece8b75 (the previous HEAD) via the following commands:
```bash
for i in $(seq 100); do RUST_BACKTRACE=1 LAPACK=1 CARGO_FEATURE_SYSTEM_NETLIB=1 CARGO_FEATURE_EXCLUDE_LAPACKE=1 CARGO_FEATURE_EXCLUDE_CBLAS=1 sh -c "cd nalgebra-lapack && cargo +beta test cholesky_solve"; done
for i in $(seq 100); do RUST_BACKTRACE=1 LAPACK=1 CARGO_FEATURE_SYSTEM_NETLIB=1 CARGO_FEATURE_EXCLUDE_LAPACKE=1 CARGO_FEATURE_EXCLUDE_CBLAS=1 sh -c "cd nalgebra-lapack && cargo test cholesky_solve"; done
```
It's somewhat rare, there only seem to be 2-3 crashes per 100 runs.
Sample backtraces:
```
---- linalg::cholesky::cholesky_solve_static stdout ----
thread 'linalg::cholesky::cholesky_solve_static' panicked at '[quickcheck] TEST FAILED. Arguments: (Matrix { data: [69.69431563547087, 75.85874450854578, 80.51503043974236, 55.72021550747667, 50.60926688060886, -47.98551293031665, 35.8865183309388, -45.711636343254
995, 69.73960842665585, 29.100233100697324, 92.95087043025657, -82.45703076757903, 79.48975128880761, 27.7026291273621, 93.98360271057183, -51.463607224805855] })', /home/avi/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.9.0/src/tester.rs:178:28
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:211
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::begin_panic
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:411
8: quickcheck::tester::QuickCheck::quickcheck
at /home/avi/Documents/cloned-repos/nalgebra/<::std::macros::panic macros>:3
9: quickcheck::tester::quickcheck
at /home/avi/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.9.0/src/tester.rs:196
10: lib::linalg::cholesky::cholesky_solve_static
at /home/avi/Documents/cloned-repos/nalgebra/<::quickcheck::quickcheck macros>:13
11: lib::linalg::cholesky::cholesky_solve_static::{{closure}}
at /home/avi/Documents/cloned-repos/nalgebra/<::quickcheck::quickcheck macros>:11
12: core::ops::function::FnOnce::call_once
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/ops/function.rs:235
13: as core::ops::function::FnOnce>::call_once
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/boxed.rs:787
14: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
15: std::panicking::try
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:275
16: std::panic::catch_unwind
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panic.rs:394
17: test::run_test::run_test_inner::{{closure}}
at src/libtest/lib.rs:1408
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
```
```
---- linalg::cholesky::cholesky_solve stdout ----
thread 'linalg::cholesky::cholesky_solve' panicked at '[quickcheck] TEST FAILED. Arguments: (69, 52)', /home/avi/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.9.0/src/tester.rs:178:28
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:211
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::begin_panic
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:411
8: quickcheck::tester::QuickCheck::quickcheck
at /home/avi/Documents/cloned-repos/nalgebra/<::std::macros::panic macros>:3
9: quickcheck::tester::quickcheck
at /home/avi/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.9.0/src/tester.rs:196
10: lib::linalg::cholesky::cholesky_solve
at /home/avi/Documents/cloned-repos/nalgebra/<::quickcheck::quickcheck macros>:13
11: lib::linalg::cholesky::cholesky_solve::{{closure}}
at /home/avi/Documents/cloned-repos/nalgebra/<::quickcheck::quickcheck macros>:11
12: core::ops::function::FnOnce::call_once
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/ops/function.rs:235
13: as core::ops::function::FnOnce>::call_once
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/boxed.rs:787
14: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
15: std::panicking::try
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:275
16: std::panic::catch_unwind
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panic.rs:394
17: test::run_test::run_test_inner::{{closure}}
at src/libtest/lib.rs:1408
```
```
---- linalg::cholesky::cholesky_solve_static stdout ----
thread 'linalg::cholesky::cholesky_solve_static' panicked at '[quickcheck] TEST FAILED. Arguments: (Matrix { data: [-78.583699698804, -40.712235422361644, -59.16787453390664, 44.808985760599455, -5.6350540733132135, 64.34217014701775, -37.60170949826423, -72.71896028523642, -62.42317853170132, -50.35792733594966, 86.84045651347355, -88.80993330984465, 90.63876282922334, -27.765180482875536, 90.79548961290834, 49.467966852669235] })', /home/avi/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.9.0/src/tester.rs:178:28
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:211
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::begin_panic
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:411
8: quickcheck::tester::QuickCheck::quickcheck
at /home/avi/Documents/cloned-repos/nalgebra/<::std::macros::panic macros>:3
9: quickcheck::tester::quickcheck
at /home/avi/.cargo/registry/src/github.com-1ecc6299db9ec823/quickcheck-0.9.0/src/tester.rs:196
10: lib::linalg::cholesky::cholesky_solve_static
at /home/avi/Documents/cloned-repos/nalgebra/<::quickcheck::quickcheck macros>:13
11: lib::linalg::cholesky::cholesky_solve_static::{{closure}}
at /home/avi/Documents/cloned-repos/nalgebra/<::quickcheck::quickcheck macros>:11
12: core::ops::function::FnOnce::call_once
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/ops/function.rs:235
13: as core::ops::function::FnOnce>::call_once
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/boxed.rs:787
14: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
15: std::panicking::try
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:275
16: std::panic::catch_unwind
at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panic.rs:394
17: test::run_test::run_test_inner::{{closure}}
at src/libtest/lib.rs:1408
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
failures:
linalg::cholesky::cholesky_solve_static
test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.