Repository navigation
Rust #325: describe parents with several open children - #865
Conversation
Published PHP describes a parent by its open waits however many children it holds: the first open child, or an open timer ahead of open children, under any parent-close policy. Native's child summary allowed one waiting child at a time, only the abandon parent-close policy, at most 100 children over a run's life, and no timer beside a child, so such a parent was described with no wait. Lift those limits, and keep an already chosen timer wait while every child is open. The new child-descriptions fixture records five cases against published 2.11.5. A child with another cancellation, retry or timeout policy, or beside an open activity, stays unqualified pending its own evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Cloud static review of All children still pass typed-history identity and wait/call/link-row validation before the new timer-preservation branch. Duplicate sequence/child identities and the existing cancellation/retry/timeout restrictions remain. Both lifetime-100 restrictions are removed: history admission and the SQL limit/row-count guard. Open-child selection remains ordered by sequence. I traced the contract through published Server2.11.5's locked Core2.15.1 source The fixture comparator checks the complete recorded completion result and selected description fields for all five cases, rejects extra/missing cases, and explicitly marks embedded mode inapplicable. The probe terminates children before the parent after recording. Coverage limits: the five new cases do not exercise the >100 lifetime boundary or distinguish two different child labels. The cap removal and ordered selection above are implementation-review evidence, not additional fixture observations. This was a static source/fixture review. I ran no Rust or HTTP workload; the locally reported native/published-reference suites remain the owner's evidence. Normal hosted checks and combined-source qualification remain required. This review authorizes no Native publication and does not change the separate #861 reference hold. |
|
PR CI run 40905860198: one lane failed, and not on this PR's fixture. The SQLite execution-and-codec corpus excerpt reads That fixture uses its own namespace and is untouched here. Locally, published 2.11.5 passes |
|
General's read-only PHP helper review found a candidate timing-measurement defect, not yet a proven cause of this failed run. Original attempt 1, corpus job reports If an initial validation request actually waits to its deadline but requires a lock-pressure retry, a final request returning the retained receipt quickly can be reported as approximately 0.05 seconds. The correct witness for the existing timeout contract is the entire logical request, including its existing bounded retries. The original hosted log does not establish that exact retry/receipt sequence, so I am not attributing this run to that mechanism yet; its original record/retry notes are still needed for correlation. A focused helper correction should cover an initial waiting response followed by a fast retained receipt, plus an immediate no-retry response, preserving the frozen 9–20-second bounds, assertions and Server behavior. No shared fixture or source has been edited by this review. A passing rerun alone will not resolve the candidate measurement defect. |



Part of #325.
What changed
Native now describes a parent by its open waits however many children it holds, as published PHP 2.11.5 does.
child_summary.rs) gave up, leavingwait_kindnull, when:parent_close_policywas notabandon;RunWaitView):Evidence
child-descriptions(raw worker HTTP on protocol 1.20), five cases: one child, two children, child then timer, timer then child, and a child withparent_close_policy: terminate. Each records the completion answer and the parent's description. After recording, the probe terminates the children and then the parent, so their never-polled tasks don't load PHP's maintenance loop for later fixtures (see Rust #325: accept completions and parallel groups over 100 #851).rust/tests/execution/child_descriptions.rscovers the five cases. On the previous source, two children and a child beside a timer were described with a null wait.Not covered
A child with a cancellation policy other than
abandon, a retry or timeout policy, or beside an open activity, is still described without its wait. Each needs its own evidence first.🤖 Generated with Claude Code