mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-21 22:56:55 +00:00
T3 closure: reconcile §8C.3 trigger narrative + C5 pin strength
Two document-truthfulness mismatches flagged by architect review: §B Governance transition (closure report): previously claimed "no §8C.3 triggers fired during T3"; §H Phase 3's own BUG-005 description matches trigger #1 (unknown-unknown architectural bug, V2/V3 shape- level mismatch). Corrected to say trigger #1 fired once (BUG-005) and was handled per §8C.3, with log entry, architect+PM notification, catalogue §2.3 drift-event row, and porting-discipline citation. C5-NVME-SESSION-STATE-CLEANUP-ON-CLOSE (contract bridge catalogue §2.2.14): previously stated "PASSES today" / "pinned explicitly". Closure §H Phase 4 correctly narrows landed tests to "smoke + goroutine-leak guard" with Target.ctrls/AER/KATO-stored-ms introspection not exercised. Catalogue row now matches that strength: "pin strength today: smoke + goroutine-leak guard only; full state-release introspection NOT exercised; queued as follow-up". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
4127e5136c
commit
6e196885e4
@@ -403,9 +403,9 @@ If the entity is `new` (§1.0), contracts are fresh and subject to §8C.5 semant
|
||||
| C2-NVME-SESSION-AER-PARK-ONLY | AER request parked in single slot; never emits events; slot cleared on session close | REBUILD (V2 full-event-source → V3 park-only) | `session.go` tryParkAER + clearPendingAER | `TestT3b_NVMe_AER_Parks` + OAES advertised=0 pin |
|
||||
| C3-NVME-SESSION-CNTLID-ECHO | IO Connect must echo admin CNTLID; mismatch rejected | NEW (V3 strict; V2 was looser) | `session.go` handleIOConnect + Target.ctrls lookup | `PCDD-NVME-FABRIC-CNTLID-ECHO-001` |
|
||||
| C4-NVME-SESSION-SERIAL-PDU-LOOP | rxLoop single-threaded; same C3-CONTROLLER-RXLOOP-SERIAL but session-scope view | PRESERVE | same as §2.2.2 C3 | BUG-001 test family |
|
||||
| C5-NVME-SESSION-STATE-CLEANUP-ON-CLOSE | All session-scope state (KATO, AER slot, CNTLID reservation, pendingCapsules) MUST be released by Session.Close; leaks across sessions forbidden | NEW-explicit (T3-DEF-6 retrofit) — PASSES today | `session.go` Close path releases each; now pinned explicitly rather than via implicit goroutine-leak count | `TestT3_NVMe_Session_CleanupOnClose_NoLeaksAcrossCycles` + `TestT3_NVMe_Session_CleanupOnClose_CNTLIDAllocator` (`t3_qa_session_cleanup_addendum_test.go`) |
|
||||
| C5-NVME-SESSION-STATE-CLEANUP-ON-CLOSE | Contract: all session-scope state (KATO, AER slot, CNTLID reservation, pendingCapsules) MUST be released by Session.Close; leaks across sessions forbidden | NEW-explicit (T3-DEF-6 retrofit) — **pin strength today: smoke + goroutine-leak guard only**; full state-release introspection NOT exercised | `session.go` Close path releases each; behavior today confirmed via indirect observation (no goroutine leak across 20 open/close cycles; CNTLID allocator strictly monotonic across 8 cycles with no zero-sentinel / no wedge). Test-only introspection of Target.ctrls map size, AER slot occupancy, and stored KATO ms is **not** exercised — queued as follow-up if/when BUG-006 timer work touches this area or a test-only introspection surface is added | `TestT3_NVMe_Session_CleanupOnClose_NoLeaksAcrossCycles` + `TestT3_NVMe_Session_CleanupOnClose_CNTLIDAllocator` (`t3_qa_session_cleanup_addendum_test.go` at `seaweed_block@313dd52`) |
|
||||
|
||||
**Latent-gap audit note (closed 2026-04-22)**: C5 (cleanup-on-close) was formerly an implicit contract tested only via goroutine leak count. Now explicit with dedicated L1 QA addendum tests (T3-DEF-6). C1 (KATO enforcement) was previously tagged PRESERVE-partial assuming revisit later; Matrix D m01 evidence proves the contract is already **violated** — reclassified with BUG-006 anchor (T3-DEF-7).
|
||||
**Latent-gap audit note (closed 2026-04-22)**: C5 (cleanup-on-close) was formerly an implicit contract tested only via goroutine leak count. Now explicit as a catalogue row with smoke + leak-guard pinning via T3-DEF-6 addendum; the full contract (state-release introspection) is documented but not strongly pinned — queued for post-BUG-006 follow-up. C1 (KATO enforcement) was previously tagged PRESERVE-partial assuming revisit later; Matrix D m01 evidence proves the contract is already **violated** — reclassified with BUG-006 anchor (T3-DEF-7).
|
||||
|
||||
### §2.3 Known drift events mapped to this catalogue (audit trail)
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
- Mid-T batches (T3a, T3b, T3c) used QA single-sign per §8C.2 — accelerated cadence.
|
||||
- T3-end requires three-sign per §8C.1 (architect + PM + QA) — this report is the artifact.
|
||||
- Discovery Bridge: no §8C.3 triggers fired during T3; all scope changes (Addendum A additions to T3.0 audit) went through QA single-sign.
|
||||
- Discovery Bridge: §8C.3 trigger #1 (unknown-unknown architectural bug — V2/V3 shape-level mismatch, BUG-001 class) **fired once** during T3, on BUG-005 discovery in Path B (session-layer `Backend.Close` cleared Provider-cached Backend across sessions — V3 introduced `frontend.Backend.Close()` abstraction without carrying V2's implicit Subsystem.Dev registry-ownership contract into interface godoc). Handled per §8C.3: architect + PM notified same-day; bug log entry at `bugs/005_backend_close_cross_session.md`; fix `42b045a`; catalogue §2.3 drift-event row added; `feedback_porting_discipline.md` updated with "new-abstraction ownership drift" as third citation. No other §8C.3 triggers fired. All remaining scope changes (Addendum A additions to T3.0 audit) went through mid-T QA single-sign per §8C.2.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user