Repository navigation
fix(net): prove native futures Send at the default recursion limit - #5682
Conversation
Co-Authored-By: GPT-6 <noreply@openai.com>
Add a default-recursion-limit integration crate proving announcement, track, and group futures are Send. Baseline compile is still running; no production change has been made. A nightly toolchain is absent from the local environment, and the explicit nightly CI proof remains to wire. No API or wire changes. Co-Authored-By: GPT-6 <noreply@openai.com>
Nightly default-limit failure reproduced. Conditional lock bounds and constructor-checked origin state added; opaque nested future proof under validation. Stable baseline passed. Full checks and final nightly confirmation remain. Co-Authored-By: GPT-6 <noreply@openai.com>
Pinned nightly default128 compile passed with the origin wrapper and private future boundaries. Removing the wrapper reproduced overflow, so retain it. Full CI lint/feature and native non-ring suites are running; loom and doctests remain. Co-Authored-By: GPT-6 <noreply@openai.com>
Final nightly default-limit compile passed. Native and CI feature/lint suites are running, doctests queued. No public API or wire change. Co-Authored-By: GPT-6 <noreply@openai.com>
Pinned nightly default128 proof,7749 non-ring workspace tests,466capture,192play,30loommodels,doctests and strict CIcheck passed. Full io_uring runtime fixture remains unavailable under previously reproduced setup ENOMEM; it was not retried. Co-Authored-By: GPT-6 <noreply@openai.com>
# Conflicts: # quest/m2/README.md
In statement position, include! of an item file does not parse, so both doctests passed regardless of SendCell's constructor bound. Include at item level and pin the expected E0277 on both SendCell and kio Lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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 39 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. Comment |
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. |
|
Merge summary:
(Written by Claude Opus 5.5) |
Nightly's send-depth gate and every fuzz target have failed since #5773 gave a stats session and its wire counters references to each other: each IETF subscriber future repeated that recursive auto-trait proof and overflowed the default recursion limit. Bisected to that commit with nightly 2026-10-19. Wrap each shared session context in SendCell, as #5682 did for the origin graph, so the proof runs once at construction. No allocation or API change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
Native futures awaiting announcements or track/group reads overflow nightly's default-depth Send proof. Raising moq-net's recursion limit does not raise a downstream crate's limit.
Approach
Shorten the equivalent Send/Sync proofs at kio locks, check native shared-origin thread safety at construction, and expose shallow opaque proofs for nested private futures. Remove the raised recursion limit. Add a default-limit integration crate and a nightly CI gate that denies recursion-depth warnings.
Impact
Validation
Reproduced the original overflow on pinned nightly 2026-10-04; the proof passes at the default limit after merging current
main. Removing the checked origin wrapper reproduces overflow. Thecompile_faildoctests forSendCellandkio::Locknow fail on E0277 rather than a parse error.just checkand CI (including io_uring) pass.Alternatives
Conditional lock proofs alone remain too deep. Additional boxing would allocate; shallow checked proofs avoid that cost. Private future signature experiments were removed.
Follow-ups
None.
Closes #4648.
(Written by GPT-6, updated by Opus 5.5)