docs: record reviewed SDK2 ownership regressions and diagnostic design
This commit is contained in:
@@ -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
Reference in New Issue
Block a user