-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
This happens when I run tests::bench_ipmpsc.
$ cd ipc-benchmarks
$ RUST_BACKTRACE=1 cargo bench tests::bench_ipmpsc -- --nocapture
...
running 1 test
thread 'main' panicked at 'error receiving: Runtime("timeout_ok(libc::pthread_cond_timedwait(self.0.condition.get(),\n self.0.mutex.get(), &then)) failed: 22")', src/lib.rs:107:27
stack backtrace:
0: rust_begin_unwind
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/std/src/panicking.rs:493:5
1: std::panicking::begin_panic_fmt
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/std/src/panicking.rs:435:5
2: test::bench::ns_iter_inner
3: test::bench::Bencher::iter
4: ipc_benchmarks::tests::bench_ipmpsc
5: core::ops::function::FnOnce::call_once
6: core::ops::function::FnMut::call_mut
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/core/src/ops/function.rs:150:5
7: test::bench::Bencher::bench
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/bench.rs:45:9
8: test::bench::benchmark::{{closure}}
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/bench.rs:192:51
9: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/std/src/panic.rs:322:9
10: std::panicking::try::do_call
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/std/src/panicking.rs:379:40
11: std::panicking::try
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/std/src/panicking.rs:343:19
12: std::panic::catch_unwind
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/std/src/panic.rs:396:14
13: test::bench::benchmark
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/bench.rs:192:18
14: test::run_test
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/lib.rs:489:13
15: test::run_tests
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/lib.rs:339:13
16: test::console::run_tests_console
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/console.rs:289:5
17: test::test_main
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/lib.rs:120:15
18: test::test_main_static
at /rustc/1700ca07c6dd7becff85678409a5df6ad4cf4f47/library/test/src/lib.rs:139:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test tests::bench_ipmpsc ... FAILED
The error originates at
Lines 160 to 164 in 2b4357e
| nonzero!(timeout_ok(libc::pthread_cond_timedwait( | |
| self.0.condition.get(), | |
| self.0.mutex.get(), | |
| &then | |
| ))) |
A quick search suggests that EINVAL is returned when the tv_nsec is invalid, but it doesn't seem to be the case. I added a println right before the call, and I got:
tv_sec=1922927639
tv_nsec=612420000
Note the error happens non-deterministically. Some iterations succeed. The error does not happen on a Ubuntu machine with the same version of rustc.
Environment:
OS: macOS Catalina 10.15.7 (19H15)
rustc: nightly-2020-12-09-x86_64-apple-darwin
schneiderfelipe
Metadata
Metadata
Assignees
Labels
No labels