docs: record reviewed close ownership and native attribution
This commit is contained in:
@@ -520,3 +520,32 @@ G4 resource/performance acceptance remain unresolved.** #799, #800, #801 and
|
||||
ScadaBridge#121 stay open. Neither an SDK version substitution, production crypto/
|
||||
session-factory workaround, resource-cap waiver nor warmed acceptance baseline
|
||||
was approved. SDK2 remains on draft PR#802; it is not merged to master or deployed.
|
||||
|
||||
## Follow-on #799 close ownership and native attribution
|
||||
|
||||
The [candidate bounded close control](evidence/2026-11-10-opcua2/close-ownership-candidate.md)
|
||||
at `564f1091` passed with one abandoned browse and six abandoned history points.
|
||||
Old authentication returns exactly BadSessionIdInvalid; old continuation tokens
|
||||
are rejected without a history-backend read while fresh-session positives work.
|
||||
All 23 old-object weak targets collect with the same host still running; all 13
|
||||
application/server/manager/core/store targets collect after normal shutdown.
|
||||
SDK2's stronger `(0,0)` closed-list check, two manager-disposal checks, empty
|
||||
caches and zero PKI descriptors remain enforced. Astra verified the actual TRX.
|
||||
Six affected history tests also pass; their original launcher mistakenly expected
|
||||
seven, and the retained false guard receipt has a separate independently reviewed
|
||||
six-test source/TRX correction. No failed test was relabelled or rerun for that fix.
|
||||
|
||||
The [fixed macOS store-versus-registry control](../../scripts/validation/opcua-lifecycle-memory/native-retention/README.md)
|
||||
completed its execution/ownership checks, **not native-retention acceptance**.
|
||||
Two hundred configured-store acquisitions leave AppleDatabase inventory 3→203;
|
||||
registry AddRefs remain 3→3. After normal disposal and five seconds idle, both
|
||||
arms have zero SDK certificate owners, runtime-tracked temporary keychains,
|
||||
temporary-keychain files, keychain descriptors and PKI descriptors. The installed
|
||||
runtime calls CFRelease after native deletion; a missing managed release is not
|
||||
indicated. Native ownership/delete status, complete RSS attribution and a supported
|
||||
mitigation remain unresolved. Registry substitution would change deliberate
|
||||
configured-store replacement semantics and was not adopted.
|
||||
|
||||
These results leave the original cold RSS failures and #799/G4 unchanged. The
|
||||
[prospective resolution procedure](../../scripts/validation/opcua-lifecycle-memory/RESOLUTION.md)
|
||||
is explicitly a design draft, not approval to launch a warmed acceptance run.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,41 @@
|
||||
# Candidate close and weak-root control
|
||||
|
||||
The final bounded control at `564f10914357fc34db303b2faf030907663e6779`
|
||||
passed: one test executed, one passed, no skips; runner elapsed 10.082 seconds.
|
||||
It creates one abandoned browse point and six abandoned history points through
|
||||
the same encrypted canonical fixture helpers. Before close, the retained server
|
||||
session has exactly `(1,6)` points; SDK2's stronger post-close `(0,0)` check remains.
|
||||
|
||||
The old authentication token returns exactly `BadSessionIdInvalid` (`0x80250000`).
|
||||
A fresh session rejects both old continuation tokens with
|
||||
`BadContinuationPointInvalid`; invalid history does not call the historian.
|
||||
Fresh reads and the session's own browse/history roundtrips succeed around the
|
||||
denials, so a generally broken channel cannot satisfy this control.
|
||||
|
||||
After the session helper and its completed async state machine leave the isolated
|
||||
boundary, **all 23 old client/session/point/value/state targets are collectible
|
||||
while the same server is still running**, in each of five fixed GC observations.
|
||||
After normal host/application disposal and the fixture boundary, all 13 observed
|
||||
application/configuration/manager/validation-core/store/server/node-manager/
|
||||
backend targets are collectible in every round. Independent retained/collectible
|
||||
observer controls behave as expected. Both SDK2 certificate managers are disposed,
|
||||
cached stores are empty and actual PKI descriptors are zero.
|
||||
|
||||
Earlier one-history-point control receipts remain recorded: `b5986c61` passed
|
||||
with the original two-status auth whitelist; `6737e367` passed after narrowing to
|
||||
the observed exact status. Six affected history tests also passed at `6737e367`.
|
||||
Their launcher mistakenly expected seven tests. The original false guard receipt
|
||||
is retained; a separate source inventory and TRX review confirms four session
|
||||
history tests plus two event-paging tests, all executed/passed. No seventh source
|
||||
test is missing and the tests were not rerun to correct that bookkeeping error.
|
||||
|
||||
[Machine-readable observations, commands and raw hashes](close-ownership-candidate.json)
|
||||
retain all four executions. The current build has zero warnings/errors. Astra
|
||||
reviewed the design and actual code before each diagnostic execution; it verified
|
||||
all three close-control TRX files, the aligned 23/13 weak-target result and the
|
||||
six-test inventory correction independently.
|
||||
|
||||
This establishes bounded candidate close semantics and managed collectibility.
|
||||
It does **not** establish full canonical operation/host parity with the original
|
||||
standalone adapter, a steady RSS denominator, a resource-budget waiver, macOS
|
||||
native-retention resolution or G4 acceptance. No production code changed.
|
||||
Reference in New Issue
Block a user