Fix flaky shared-futex control-ring test
- Dominant language
- Rust
- Stars
- 2.7k
- Forks
- 144
- Avg merge
- 12h 21m
- Merged PRs (30d)
- 146
Description
The `litebox_broker_transport_linux_userland::memfd::tests::shared_futex_wakeup_prevents_missed_cross_mapping_work` test is flaky on the `ulitebox` branch. It failed in #1235's Linux CI job with `request ring should be full` at `litebox_broker_transport_linux_userland/src/memfd.rs:931`, then passed unchanged on rerun.\n\nThe test has a race after `empty_checked.wait()`: the producer fills the request ring while the broker thread may return from `wait_for_message` and consume a slot before the producer verifies that the next write reports `ControlRingWriteStatus::Full`. The test should add deterministic synchronization so the broker cannot consume until the producer has observed the full ring, while preserving coverage of cross-mapping futex wakeups and missed-wakeup prevention.\n\nFailing run: https://github.com/microsoft/litebox/actions/runs/33172865102/job/98854053153
Contributor guide
Research direction
Start with the shared_futex_wakeup_prevents_missed_cross_mapping_work test in litebox_broker_transport_linux_userland/src/memfd.rs around line 931, focusing on empty_checked.wait() and the broker's wait_for_message path. Add deterministic synchronization so the producer observes the full request ring before the broker can consume a slot, then run the test and verify cross-mapping futex wakeup and missed-wakeup coverage remain intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, rust
- Domain
- operating-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 82/100