docs: record reviewed SDK2 ownership regressions and diagnostic design

This commit is contained in:
Joseph Doherty
2026-11-10 17:33:06 -05:00
parent 2e4905f112
commit 327bbdaab9
3 changed files with 1385 additions and 0 deletions
@@ -549,3 +549,53 @@ 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.
### Baseline ownership repair and SDK2 follow-through
The [original ownership controls](../../scripts/validation/opcua-lifecycle-memory/baseline-canonical/OWNERSHIP.md)
retain both ordinary exit-1 outcomes. Closed-session/point objects collect while
the same original host remains alive, and old authentication and continuation
tokens are rejected. After normal stop, five original server graph objects
remain. One separate public terminal Dispose releases all five and reduces active
timers from seven to two. The intervention does not rewrite the ordinary failure
or identify a particular measured timer root.
The SDK1 host omitted terminal server disposal. This was repaired independently
on master `efb9197a`; [#807](https://gitea.dohertylan.com/dohertj2/lmxopcua/issues/807)
is closed. Five causal RED cases pass after the fix; 1,032 owning tests pass with
one existing skip, and the Release solution builds without warnings. The frozen
`83ed880e` publications and aggregate oracles remain unchanged. The repaired
master has not been selected as a resource denominator.
SDK2 already disposes adopted servers through ApplicationInstance. Follow-on
review found that a second host disposal could return while the owner was still
closing a real session, and configuration/certificate failure before adoption
could strand the host's raw server. One owner now provides shared completion,
retains server/authentication state through shutdown, and directly awaits terminal
disposal only for an unadopted server. A terminally disposed host rejects new
startup. This does not claim general concurrent asynchronous Start/Dispose support.
At integrated source `ce21f5db`, the whole solution builds with **zero warnings
or errors**. The server unit suite has **1,122 passes** and one existing skip;
full wire has **193 passes** and three existing opt-in diagnostic skips. The
seven focused ownership cases, actual encrypted concurrent shutdown and aligned
weak-root control pass; trusted-channel/certificate and same-PKI two-boot checks
are included. [Source hashes and guarded RED/GREEN receipts](evidence/2026-11-10-opcua2/disposal-ownership-integrated.json)
preserve the three intended unit RED failures, the real-session RED, and the
earlier test compilation/assertion attempts separately. Astra independently
verified source, causal failures and integrated results. Earlier full CI, publish
and soak evidence retain their own source revisions and outcomes.
The [pure Apple empty-keychain control](../../scripts/validation/opcua-lifecycle-memory/native-retention/PURE_APPLE.md)
kept AppleDatabase inventory flat across 200 successful create/delete/release
operations with unchanged default/search-list fingerprints. Empty-keychain
lifecycle alone is insufficient to reproduce the native retention. The first
[installed bridge import attempt](../../scripts/validation/opcua-lifecycle-memory/native-retention/NATIVE_IMPORT_ATTEMPT.md)
failed after one partial operation on a diagnostic identity-association
assumption; all owners and private files were cleaned. It is not a repeated
import result or evidence of native retention resolution.
#799 and G4 remain open. The [proposed Linux late-slope diagnostic](../../scripts/validation/opcua-lifecycle-memory/LATE_SLOPE.md)
has implementation design approval only. It retains the cold baseline and first
resource rejection and cannot emit acceptance. No new long run or release is
approved; Windows/live interoperability gates remain separate.
File diff suppressed because it is too large Load Diff