microsoft / microsoft/litebox

Fix flaky shared-futex control-ring test

Open
#1,236 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.