test: separate cache overlap deadline from executor shutdown - #5182
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Warning Review limit reachedNext included review available in 22 minutes. View limit detailsLimit details: You’ve used all 4 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 4 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe cache-concurrency test now separates lookup-overlap timing from execution shutdown. It tracks scheduler progress, supports cancellation, and records thread-pool and cleanup diagnostics. ChangesDistributed cache concurrency test
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Other Merge Risk: ⚪ Minimal · up to This test-only change separates overlap detection from shutdown timing and adds diagnostics without changing production behavior, so it is ready to merge. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. A rabbit checks the cache in flight Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c7b9a874cb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@coderabbitai The docstring-coverage warning concerns a test method and its local diagnostics function. This follows the surrounding test style; the ordering and shutdown rationale are documented beside the assertions. Treating this metric as advisory, consistent with your disposition on #5181. |
ReviewScope: this is a test-only change to Finding: outer
|
ReviewScope: test-only change to Previous finding addressedA prior review on this PR flagged that the method-level Current state
No actionable issues found. This is a solid, well-targeted fix to test flakiness with good diagnostic instrumentation for any recurrence. |
|
Addressed the blocking finding in #5182 (comment) with b9448fd, confirmed in the remote PR head. The outer guard is now 70 seconds, covering the five-second overlap deadline, 30-second completion deadline, and 30-second cleanup deadline plus margin. The overlap clock now starts after fixture setup. All 50 focused repetitions pass; scoped formatting passes. Please re-review the updated head. |
|
Tip For best results, initiate chat on the files or code changes.
✏️ Learnings added
You are interacting with an AI system. |
Problem
The Linux run for #5181 failed
Cache_Lookups_For_Ready_Modules_Run_Concurrentlyafter both lookups started and the held lookup resumed within 13.4 ms. The failure was awaiting executor completion, after the overlap assertion had passed. The existing five-second test timeout also covered worker and scheduler shutdown, including thread-pool work queued byCancellationTokenSource.CancelAsync.Change
Keep a separate five-second cancellation deadline for observing both lookups before releasing the first. Give executor completion an explicit 30-second deadline after overlap succeeds, with a 70-second outer guard covering five seconds for overlap, 30 seconds for completion, and 30 seconds for cleanup plus margin. The overlap clock starts after fixture setup. Keep all 50 repetitions and both restored-cache completion assertions. Record module completion, scheduler cancellation, thread-pool state on failure, and cleanup completion so any recurrence identifies the stalled phase. This does not change production scheduling or claim that a production deadlock has been reproduced.
Validation
PublishReadyModulesAsync; all 50 repetitions failed at the retained five-second overlap deadline. Restored production source before final validation.ModularPipelines.Tests.slnfcompleted; its existing F# project is unsupported bydotnet format.Part of #5101. Unblocks #5181.
Failure evidence: https://github.com/thomhurst/ModularPipelines/actions/runs/35101343839/job/104813028062