test(reliability): bound release acceptance CLI subprocesses - #667
Conversation
|
Warning Review limit reached
Next review available in: 35 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
|
Primary-source feasibility note for the eventual GREEN implementation: current Python 3.14 |
|
@opencode-agent address Sole bounded completion writer for Draft #667 on exact head The production timeout implementation was already GREEN on predecessor head Do only deterministic completion: run |
8158520 to
d396b95
Compare
fd8ab98 to
fffd324
Compare
Buyer-visible reliability gap
Advances #555 with a disjoint release-acceptance operation class. Protected
maina7be9eb8ca0b807364173f8471fc300e3cf9350fran each release-acceptance CLI step throughscripts/release_acceptance.py::_run_cli()without a subprocess deadline. A hung simulate/fit/diagnostics/report child could therefore hold the acceptance path until the outer job ceiling, and timeout failure was not normalized at the package boundary.This slice does not overlap #578 (
run_ignored_rust_shard.pyscientific-study process groups), #657 (build_pr_queue_governance.pyGitHub CLI retry behavior), or #666 (build_benchmark_report.pylocal Git metadata timeout).Preserved exact RED evidence
Fail-first source head:
ca0bb34c31232718d332e3614087d13aa67b7ba0, directly based on protected maina7be9eb8ca0b807364173f8471fc300e3cf9350f.CI run
31414709391, Python job93540867087, checked out synthetic merge9fd675c07bc0a551921e17aadd1ec684fbf066dcand completed with exactly 1 failed, 2948 passed, 2 skipped. The sole failure wastests/test_release_acceptance_subprocess_deadlines.py::test_fit_cli_timeout_is_bounded_and_fails_closed_without_reflection:_run_cli()calledsubprocess.runwithouttimeout=, the sentinel observedtimeout=None, and rawsubprocess.TimeoutExpiredescaped. This is the intended production boundary, not setup/import/fixture failure.On that same fail-first integration, Rust workspace/PyO3, package/build/reinstall/release-acceptance smoke, enterprise sales readiness, explicit GPU parity and fuzz were GREEN; Security Scan
31414709319and SAST31414709366were GREEN. The existing marginal_log_sigmoidwarning remains #583/#564 and is unrelated.Current GREEN implementation under verification
Exact current source head:
8463eef25fb864801348966a5d5e6d30232d56ea, still over protected maina7be9eb8ca0b807364173f8471fc300e3cf9350f.The implementation now:
diagnose-fit300 seconds, and simulation/report rendering 120 seconds rather than imposing one tiny universal deadline;subprocess.run;subprocess.TimeoutExpiredbefore the existing non-timeout path and raises stableRuntimeError("<package-owned-operation> timed out")without child command/stdout/stderr reflection;Focused tests now cover the original timeout/redaction boundary, complete operation-vocabulary coverage, deadline ordering/bounds, successful timeout forwarding, and unknown-operation fail-closed behavior.
Primary technical basis
Python 3.14's supported high-level subprocess API provides
timeout=and raisessubprocess.TimeoutExpired; GitHub Actions' outer job/step timeout remains an independent ceiling. These operational deadlines are support/resource boundaries, not scientific recommendations or claims about estimator runtime.Remaining Draft gate
Keep Draft. Current-head CI/Security/SAST must prove the source+test implementation GREEN before reliability doctoring/changelog material is added. After product GREEN:
docs/changelog.dfragment;CHANGELOG.md;Do not add process-group machinery unless real descendant leakage is demonstrated for this caller, do not shorten scientific work to fit a tiny timeout, and do not touch canonical #604 docs, numerical formulas, dependencies/workflows, package version/release, hosted state or reviewer authority.