Issue #1011: examples/trend: a second nikaia test --project run with nothing changed sometimes re-lowers one crate

Open and answer this issue on GitHub.

ready · opened 2026-10-30 · updated 2026-10-30 · 0 comments

What happened

CI run 2626 (3b845e0b, a docs-only commit on top of 0.0.1310 + std set iter()) failed one test in bootstrap_compiler:

---- examples::every_example_package_passes_its_own_tests stdout ----
panicked at crates/nikaia/tests/it/examples.rs:204:9:
assertion `left == right` failed: examples/trend: a second run with nothing changed lowers nothing
  left: 1
  right: 0

The runs on the next commits (2627 at 7291da06, 2628 at 618e6740), with the same compiler code, passed. So the failure is intermittent. “Flake” is not a root cause, though.

What the test measures

lowered counts the lines of the wrapper trace (NIKAIA_WRAPPER_TRACE, project.rs wrapper_main) that say lowered. Cargo writes one each time it decides a Nikaia workspace member is dirty and calls the wrapper for it. A count of 1 on the second run means Cargo’s fingerprint for one crate of examples/trend changed between two runs that nothing should have changed.

Suspects, unchecked

To build

  1. Reproduce the failure. Run nikaia test --both-settings --locked --project examples/trend twice from a cold NIKAIA_CACHE_DIR, with CARGO_LOG=cargo::core::compiler::fingerprint=info, in a loop until the second run lowers. Cargo’s log names the input that made the crate dirty.
  2. Fix the cause in the toolchain, so the second run is stable. Do not loosen the test.
  3. Add a regression test in Nikaia if what was found can be stated there. Otherwise name the finding, per #821.

Back to Open Issues