-
Notifications
You must be signed in to change notification settings - Fork 226
Description
It's me again :) After expanding the architectures I ran the rustix test suite for, I found another architecture-specific failure in the test suite. This time, it looks like the - relatively new - linux_raw support for powerpc64le still has some problems.
In particular, the time tests seem to be problematic, in not obviously deterministic ways, but always with an assertion failure. Looks like the powerpc64le machine I have access to doesn't necessarily behave as the code expects (line number is from rustix 0.33.6, but according to the commit history, this part of the code has not been changed since, as far as I can tell).
thread '<foo>' panicked at 'assertion failed: !ptr.is_null()', src/imp/linux_raw/vdso_wrappers.rs:375:13
What's weird is that the test that failed changed, depending on which tests I skipped:
- first, all tests from
tests/timepassed, exceptdynamic_clocks::test_conditional_clocks - second, I added
--skip test_conditional_clockstocargo test --, and thendynamic_clocks::test_dynamic_clocksfailed instead - third, I did
--skip dynamic_clocks, but thenmonotonic::test_monotonic_clockfailed instead - last, I did both
--skip dynamic_clocksand--skip test_monotonic_clock, at which point no new test failures occurred
Since actual failing test depended on which other tests were running (or not), this looks like some "hidden shared global state" to me ... or it's just a Heisenbug :)
Possibly relevant environment info:
- Fedora Rawhide, 36, 35, 34 on powerpc64le
- running on Linux 5.16.18 host
- Rust / Cargo 1.60.0 stable