Preserve validation cancellation during reader shutdown

This commit is contained in:
2026-10-09 03:06:06 +00:00
parent 15dd58f5ac
commit 6eec022bb0
4 changed files with 69 additions and 7 deletions

View File

@@ -54,7 +54,8 @@ neighboring files. Each tree owns one lazy Git blob reader; direct tree users
must close it when finished. The shared validation executor closes its tree on
every return before product checks or build callbacks run. A metadata-only
selection never starts the reader. Per-read contexts cancel an in-flight blob
exchange without tying the reader lifetime to a short-lived caller context.
exchange. The context supplied when creating the tree governs the reader
lifetime, including shutdown and child reaping.
Regular-file reads return independent caller-owned byte slices and are not
retained by the tree. Symlink targets are retained as immutable owned strings
by blob object ID; explicitly reading a symlink still returns independent

View File

@@ -1,6 +1,6 @@
# Performance Implementation Remediation
**Status:** Required follow-up; remediation pending.
**Status:** Remediation in progress; R1 complete.
**Review baseline:** df064bd, reviewed on 2026-10-09 against the
[performance target](performance.md) and
@@ -59,6 +59,12 @@ shutdown is still blocked, and verify completion, child cleanup, and preserved
cancellation identity. Retain coverage of read cancellation, successful closure,
and preservation of an earlier check failure.
**Completion:** Complete. The tree retains its operation context for the reader
lifetime. An EOF-synchronized regression now verifies shutdown cancellation,
cancellation identity, and child reaping; it failed before the fix and passes
afterward. Race tests passed for validation, Git, and process packages, including
existing read cancellation, successful closure, and primary-failure coverage.
## R2: Attribute Shutdown Failures To A Check That Read Content
**Priority:** Medium.