docs: mark #125 FD-ownership hazard resolved in roadmap 8.1 (#125) - #232
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughChangesRoadmap status update
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 18 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (18 passed)
📋 Issue PlannerLet us write the prompt for your AI agent so you can ship faster (with fewer bugs). View plan for ticket: ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 49f363b521
ℹ️ 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".
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/roadmap.md`:
- Around line 458-460: Update the introductory roadmap description for step
8.1.1 to state that it targets or will remove the Rust pump shutdown failure,
matching the unchecked item and outstanding issue `#124`; do not describe the
failure as already removed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 9c116b5c-264d-4723-996a-356377769327
📒 Files selected for processing (1)
docs/roadmap.md
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
leynos/shared-actions(auto-detected)leynos/pylint-pypy-shim(auto-detected)leynos/whitaker(auto-detected)
|
@coderabbitai review |
✅ Action performedReview finished.
|
Section 8.1 previously presented issues #124 and #125 as a single outstanding pump FD close-race work item. The #125 panic-unwind FD ownership hazard is now fixed in code and regression-tested: with_borrowed_reader wraps the borrowed reader in ManuallyDrop so a caller-owned reader FD stays open on success and panic-unwind, and rust/cuprum-rust/src/lib_tests.rs asserts the borrowed FD survives both normal and panicking operations. Split the section so 8.1.1 scopes the still-outstanding shutdown close-race work to #124, and record #125 as resolved. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Section 8.1 introduction stated the step "removes" the silent Rust pump shutdown failure, but that #124 close-race work (task 8.1.1) is still unchecked. Reword to "aims to remove" so the intro describes the outstanding intent rather than a completed outcome. The resolved #125 panic-unwind status and the 8.1.1 checklist item are unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Issue #124 covers the splice-loop dedup and drain_reader EINTR fix, not the _UnixWritePipeTransport._call_connection_lost bad-FD shutdown race. No dedicated issue tracks that race, so remove the incorrect #124 links from the Section 8.1 intro and task 8.1.1 and note it remains an unlinked, outstanding item. The resolved #125 borrowed-reader panic-unwind status is preserved unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Record the with_borrowed_reader RAII helper contract in the three places that describe Rust FD ownership: - developers-guide.md: new "Rust FD-borrow ownership contract" section (canonical) covering the ManuallyDrop borrow, the consumed-writer asymmetry, the safety contract, and the panic-unwind regression tests. - adr-002: note the raw-FD ownership known-risk is now mitigated by the helper, cross-referencing the developers' guide. - execplan 4-2-1: addendum recording that the helper superseded the planned std::mem::forget mitigation, plus the required revision note. Uses the repo's typos-enforced "centralize" spelling. make markdownlint and make nixie pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The unchecked 8.1.1 checklist item already conveys that the pump shutdown close race is outstanding, so the explicit sentence saying so was redundant. Remove it; the intro now just cites the baseline finding and ADR-002. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Rebasing onto main brought in the repository-wide Markdown reformat, so run the new #125 ownership-contract prose through mdformat-all to match the surrounding wrap width. Also drop a stray duplicate blank line the entity-aware merge driver left before the new developers' guide heading. Content is unchanged; this is wrapping only. Unrelated pre-existing format drift elsewhere in the docs tree is deliberately left alone so this branch stays scoped to the #125 documentation. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
735bcd4 to
9235555
Compare
Summary
Roadmap Section 8.1 previously bundled issues
#124and#125into a single outstanding "pump file-descriptor close race" work item. The#125panic-unwind FD ownership hazard is now fixed in code and regression-tested, so this documentation-only change stops presenting it as outstanding implementation work.Closes #125.
Changes
#125as resolved:with_borrowed_readerwraps the borrowed reader inManuallyDrop, keeping a caller-owned reader FD open on both success and panic-unwind;pump_stream/consume_streamroute through the helper; andrust/cuprum-rust/src/lib_tests.rsregression-tests that the borrowed FD survives normal and panicking operations.Bad file descriptorshutdown close race) to the still-outstanding#124.Verification
make markdownlintandmake nixieboth pass (docs-only diff).References
🤖 Generated with Claude Code
Summary by Sourcery
Documentation: