Issue #741: Two tests fail now and then in CI: an idle pool’s wake count, and node’s c-library binding

Open and answer this issue on GitHub.

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

CI run 39376882038 (0.0.1121) failed on two tests. Run 39379310560, on a later commit that contains the same code, passed both. Neither failure has to do with the commits in between. A test that fails now and then still has a cause, so each one needs one.

  1. rt::pool::tests::an_idle_pool_does_not_wake_itself (crates/nikaia-std/src/rt/pool.rs:582): “an idle pool rang 1068 times in 300 ms, for 1048 wakes from elsewhere”. The pool rang 20 more times than it was woken. Find where those extra rings come from. Either it is a real self-wake, which is a defect in the pool, or the count races with the test’s own wakes, and then the test measures the wrong thing. Fix the cause. Do not just widen the bound.
  2. c_library::node_calls_the_library_through_its_binding (crates/nikaia/tests/c_library.rs:1342): node exits non-zero, and nothing is on stderr but the expected panic of the add overflow case (CALC_E_PANICKED). There is no assertion message. A #704 builder also saw it once locally, under --profile fast. 8 local release runs passed. Suspects:
    • the for 1000 new Counter; global.gc() finalizers racing shutdown()/init();
    • the cancelled napped_async(60000) racing shutdown().

    Run it in a loop, record node’s exit status or signal, and fix the binding. Make the test print node’s exit status, so that the next failure says more.

Back to Open Issues