Repository navigation
test: synchronize load-sensitive checks on events and local state - #7717
Conversation
Quest-Claim: ca9071f29604198c
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 9 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. CodeRabbit Verify
|
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: af3441d
Isolating reclamation and waiting for actual route, callback and dispatch events avoids conflating host scheduling with correctness. Keeping hold timing in simulated tests is appropriate. No actionable bugs found in this static review. I did not run tests or load scenarios.
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — a test-only de-flake PR that completes the load-timing-bounds quest; no production API, wire, or behavior change.
- Quest retired:
load-timing-bounds.mddeleted and its README entry removed; no dangling references remain. - kio reclamation isolation:
Shared<T>gains a#[cfg(test)]localepoch::Collectorbehind aShared::pin()helper, used byWriter::take_evicted,Writer::retire, andReader::read; reclamation tests use anisolated()writer and a sharedcollect(&collector), replacing the ineffective module-wideCOLLECTORmutex.reader_outlives_writerdeliberately keeps a global pin to prove independence. - moq-c callbacks:
Callback::recvnow blocks (self.rx.recv()) instead of using the 10srecv_timeout, deferring hang detection to the nextest watchdog (30s SLOW / 60s kill). - moq-cli routing tests: removed the wall-clock
routing()/within()bound and await route events directly, keeping all identity/media assertions. - dispatch-query stderr: replaced the one-shot nonblocking sample with
select.select+ incrementalos.readuntil theci: check rs startedline arrives, with terminate/drain infinallyand safe partial-UTF-8 diagnostic decoding.
I verified the crossbeam-epoch 0.9.21 contract behind the one non-obvious change: LocalHandle::pin(&self) -> Guard is lifetime-free, and LocalHandle::drop (release_handle) does not finalize while a guard is held, so collector.register().pin() dropping the temporary handle is safe and the Local lives exactly as long as the Guard. I did not run the suites or load scenarios.
deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

Problem
Completes the load-timing quest. Tests treated host scheduling, shared epoch pins, or a single stderr sample as evidence about the behavior under test.
Approach
Impact
Validation
quest gate just cipassed: 11,228 Rust tests, 35 dispatcher tests, tooling tests, and repository checks.quest check --base origin/mainpassed (600 documents).claude-opus-5-5, medium effort), round 2, no findings.Alternatives
Larger callback/routing deadlines still measure host load. Paused time conflicts with real sockets and codec threads. Keep the real integration paths, assert their events, and leave hold timing to the existing simulated tests.
Choices
Use event waits for the shared C status-callback fixture rather than adding a raw-video-only helper. Collector injection is private and compiled only in unit tests. Preserve the announcement and follow changes owned by moq-dev/moq#7678, and leave moq-dev/moq#7659's lifetime fixes separate.
Follow-ups
None established by this change.
Review
Claude Code (
claude-opus-5-5, medium effort), round 2, headaf3441d8db0cad28d7e2465d279f32f1352b58c6: no findings.Round 1's partial UTF-8 diagnostic finding is fixed. Its C finding was refuted with the controlled runtime-starvation results above and source evidence: the cited remaining waits belong to separate lock-isolation/state/follow fixtures, outside
video_raw_*. Round 2 accepted the response.(Written by GPT-6.1 Sol)