Files
lmxopcua/docs/plans/evidence/2026-11-10-opcua2/saturation-candidate.json
T
Joseph Doherty 4a04806d22
v2-ci / unit-tests (pull_request) Has been cancelled
test: preserve saturation outcome and classify final CI corrections
2026-11-10 15:46:58 -05:00

353 lines
10 KiB
JSON

{
"scope": "Instrumented candidate-only canonical saturation diagnostic. No acceptance protocol or baseline change.",
"allocationTracking": {
"enabled": true,
"environment": "OPCUA_CERTIFICATE_LEAK_TRACKING=1",
"overhead": "Exact SDK captures a StackTrace and tracker entry per certificate wrapper. Not an uninstrumented performance/acceptance baseline."
},
"bundle": {
"sourceRevision": "2738d7cc8675298ceb38ed19ca58a9f643036ff1",
"receiptSha256": "e4eed693c80baa29266f58cee4473b1181bc6de8f4c460843bd6b1993bcf7179",
"sdk": "2.0.1",
"gateway": "1.0.0",
"runtime": "self-contained Linux ARM64 10.0.14 for target and observer",
"sha256": "e4eed693c80baa29266f58cee4473b1181bc6de8f4c460843bd6b1993bcf7179"
},
"run": {
"acceptance": false,
"containerExitStatus": 1,
"wallSeconds": 1429.7275004169205,
"sourceRevision": "2738d7cc8675298ceb38ed19ca58a9f643036ff1",
"receiptSha256": "e4eed693c80baa29266f58cee4473b1181bc6de8f4c460843bd6b1993bcf7179",
"descriptorTests": {
"executed": 2,
"skipped": 0
},
"experimentTests": {
"executed": 1,
"skipped": 0
},
"diagnosticOutcome": {
"kind": "saturation-result",
"utc": "2026-11-10T20:30:58.5817344+00:00",
"canonicalCycles": 384,
"settlingCycles": 1,
"restarts": 96,
"phaseSeconds": 1425.2416632,
"readiness": true,
"coldBudgetRejected": true,
"shutdownOwnershipVerified": true,
"acceptance": false
},
"protocolCompleted": true
},
"start": {
"kind": "start",
"utc": "2026-11-10T20:07:13.3303503+00:00",
"processId": 200,
"mode": "saturation",
"requestedSeconds": 1800,
"minimumFullSeconds": 7200,
"build": "2738d7cc8675298ceb38ed19ca58a9f643036ff1",
"sdk": "2.0.1+07e62f72500cc0923a2bab940653c8c1116fa286",
"diagnosticInstrumentation": "SDK2.0.1 CP lists and certificate-validation cached stores; read-only",
"limits": {
"retainedManagedGrowthBytes": 67108864,
"rssGrowthBytes": 134217728,
"fdGrowth": 32
},
"coverage": "encrypted sessions; scalar/Int16[] Raw+UNS; subscription removal; browse abandonment; history release/cross-session/close; surgical changes/rebuild; revocation; paused TCP read/recovery; same-PKI restart"
},
"coldRejection": {
"kind": "budget-rejected",
"cycle": 248,
"seconds": 913.8748808,
"resources": {
"Cycle": 248,
"Seconds": 913.830416,
"Sessions": 0,
"Subscriptions": 0,
"Items": 0,
"BrowsePoints": 0,
"HistoryPoints": 0,
"LiveDataItems": 0,
"LiveEventItems": 0,
"MonitoredNodes": 0,
"Variables": 19,
"Folders": 4,
"Conditions": 1,
"CachedCertificateStores": 2,
"Descriptors": 193,
"PkiDescriptors": 0,
"ManagedBytes": 19961096,
"RssBytes": 362409984,
"AllocatedBytes": 5662357112,
"Gen0": 619,
"Gen1": 496,
"Gen2": 496,
"GcCommittedBytes": 48226304,
"GcHeapBytes": 22015464,
"GcFragmentedBytes": 2054368,
"PinnedObjects": 1,
"PendingFinalizers": 17,
"JitMethods": 75848,
"JitIlBytes": 11437192,
"ActiveTimers": 16,
"Threads": 21
},
"baseline": {
"Cycle": 3,
"Seconds": 7.6451075,
"Sessions": 0,
"Subscriptions": 0,
"Items": 0,
"BrowsePoints": 0,
"HistoryPoints": 0,
"LiveDataItems": 0,
"LiveEventItems": 0,
"MonitoredNodes": 0,
"Variables": 19,
"Folders": 4,
"Conditions": 1,
"CachedCertificateStores": 2,
"Descriptors": 191,
"PkiDescriptors": 0,
"ManagedBytes": 19878208,
"RssBytes": 224620544,
"AllocatedBytes": 86490920,
"Gen0": 7,
"Gen1": 6,
"Gen2": 6,
"GcCommittedBytes": 41967616,
"GcHeapBytes": 20716064,
"GcFragmentedBytes": 837856,
"PinnedObjects": 1,
"PendingFinalizers": 16,
"JitMethods": 35741,
"JitIlBytes": 4635402,
"ActiveTimers": 18,
"Threads": 27
},
"failure": "Shouldly.ShouldAssertException: 362409984L\r\n should be less than or equal to\r\n358838272L\r\n but was not\n at ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.Sdk2LifecycleSoakTests.Repeated_lifecycles_return_resources_to_a_steady_baseline() in tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/Sdk2LifecycleSoakTests.cs:line 133"
},
"observer": {
"protocol": "sdk2-saturation-v1",
"runId": "545b3093-5eab-4348-a72d-926b9d1da7da",
"targetPid": 200,
"observerPid": 109,
"active": false,
"drained": true,
"markersValid": true,
"eventsLost": 0,
"sdkFactoryJit": 0,
"sdkFactoryLoads": 0,
"sdkAssemblyLoads": 0,
"windows": [
{
"name": "window1",
"firstCycle": 321,
"lastCycle": 352,
"startRestarts": 80,
"endRestarts": 88,
"sdkFactoryJit": 0,
"sdkFactoryLoads": 0,
"sdkAssemblyLoads": 0
},
{
"name": "window2",
"firstCycle": 353,
"lastCycle": 384,
"startRestarts": 88,
"endRestarts": 96,
"sdkFactoryJit": 0,
"sdkFactoryLoads": 0,
"sdkAssemblyLoads": 0
}
],
"otherJit": 287,
"loadedNativeBytes": 60760,
"runtimeControlJit": 0,
"configuration": {
"runtimeProvider": "Microsoft-Windows-DotNETRuntime",
"level": "Verbose",
"keywords": "0x18",
"markerProvider": "OtOpcUa-Sdk2-Saturation",
"circularBufferMiB": 16,
"requestRundown": false
},
"acceptance": false
},
"tests": {
"descriptor-controls": {
"counters": {
"total": "2",
"executed": "2",
"passed": "2",
"failed": "0",
"error": "0",
"timeout": "0",
"aborted": "0",
"inconclusive": "0",
"passedButRunAborted": "0",
"notRunnable": "0",
"notExecuted": "0",
"disconnected": "0",
"warning": "0",
"completed": "0",
"inProgress": "0",
"pending": "0"
},
"sha256": "0de2cd05f9f1dbcaee3cff33e3e625723f5dc19b8f2dbcf3fbf1376792bc489c",
"errors": []
},
"saturation": {
"counters": {
"total": "1",
"executed": "1",
"passed": "0",
"failed": "1",
"error": "0",
"timeout": "0",
"aborted": "0",
"inconclusive": "0",
"passedButRunAborted": "0",
"notRunnable": "0",
"notExecuted": "0",
"disconnected": "0",
"warning": "0",
"completed": "0",
"inProgress": "0",
"pending": "0"
},
"sha256": "1b5cba9e1b3c348d0dcbb79ba4c715d0e837602c78afc2c221c64c2e776e825b",
"errors": [
"Shouldly.ShouldAssertException : 362409984L\r\n should be less than or equal to\r\n358838272L\r\n but was not"
]
}
},
"firstSample": {
"Cycle": 1,
"Seconds": 2.7631819,
"Sessions": 0,
"Subscriptions": 0,
"Items": 0,
"BrowsePoints": 0,
"HistoryPoints": 0,
"LiveDataItems": 0,
"LiveEventItems": 0,
"MonitoredNodes": 0,
"Variables": 19,
"Folders": 4,
"Conditions": 1,
"CachedCertificateStores": 2,
"Descriptors": 191,
"PkiDescriptors": 0,
"ManagedBytes": 19275376,
"RssBytes": 222228480,
"AllocatedBytes": 62054576,
"Gen0": 3,
"Gen1": 2,
"Gen2": 2,
"GcCommittedBytes": 47521792,
"GcHeapBytes": 20204744,
"GcFragmentedBytes": 929368,
"PinnedObjects": 1,
"PendingFinalizers": 19,
"JitMethods": 29401,
"JitIlBytes": 4142214,
"ActiveTimers": 12,
"Threads": 27
},
"baselineSample": {
"Cycle": 3,
"Seconds": 7.6451075,
"Sessions": 0,
"Subscriptions": 0,
"Items": 0,
"BrowsePoints": 0,
"HistoryPoints": 0,
"LiveDataItems": 0,
"LiveEventItems": 0,
"MonitoredNodes": 0,
"Variables": 19,
"Folders": 4,
"Conditions": 1,
"CachedCertificateStores": 2,
"Descriptors": 191,
"PkiDescriptors": 0,
"ManagedBytes": 19878208,
"RssBytes": 224620544,
"AllocatedBytes": 86490920,
"Gen0": 7,
"Gen1": 6,
"Gen2": 6,
"GcCommittedBytes": 41967616,
"GcHeapBytes": 20716064,
"GcFragmentedBytes": 837856,
"PinnedObjects": 1,
"PendingFinalizers": 16,
"JitMethods": 35741,
"JitIlBytes": 4635402,
"ActiveTimers": 18,
"Threads": 27
},
"lastSample": {
"Cycle": 385,
"Seconds": 1425.221077,
"Sessions": 0,
"Subscriptions": 0,
"Items": 0,
"BrowsePoints": 0,
"HistoryPoints": 0,
"LiveDataItems": 0,
"LiveEventItems": 0,
"MonitoredNodes": 0,
"Variables": 19,
"Folders": 4,
"Conditions": 1,
"CachedCertificateStores": 2,
"Descriptors": 200,
"PkiDescriptors": 0,
"ManagedBytes": 19974280,
"RssBytes": 367771648,
"AllocatedBytes": 8790684304,
"Gen0": 963,
"Gen1": 770,
"Gen2": 770,
"GcCommittedBytes": 46555136,
"GcHeapBytes": 20348120,
"GcFragmentedBytes": 373840,
"PinnedObjects": 1,
"PendingFinalizers": 27,
"JitMethods": 80193,
"JitIlBytes": 12208985,
"ActiveTimers": 15,
"Threads": 22
},
"peakResources": {
"ManagedBytes": 20501376,
"RssBytes": 394956800,
"Descriptors": 201,
"PkiDescriptors": 0,
"JitMethods": 80193,
"GcCommittedBytes": 48549888
},
"evidenceSha256": {
"run-receipt.json": "842eacf845af019df087c69c55bb527d83c6e0d6f42057c8dd63d65eb5f86511",
"resources.jsonl": "eab640b684908d6978ca323c919d40b8ec6496a483484e3f86a396511e28dbc3",
"control/drained.json": "5a61b090086f379f3cc96b1efe328225efdafb027795a57f7636acfbf2bc5594",
"results/descriptor-controls.trx": "0de2cd05f9f1dbcaee3cff33e3e625723f5dc19b8f2dbcf3fbf1376792bc489c",
"results/saturation.trx": "1b5cba9e1b3c348d0dcbb79ba4c715d0e837602c78afc2c221c64c2e776e825b",
"test-exit-status.txt": "4355a46b19d348dc2f57c046f8ef63d4538ebb936000f3c9ee954a27460dd865",
"observer-exit-status.txt": "9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa",
"target-runtime.txt": "1287d31fb4a49b24e82c346e2b9d2a4ef956d151e08f0497c3aef78617d2a012",
"observer-runtime.txt": "38c764d4f77a4bfa9c27905c5f8feb1076d30ea626f28d0f188e4bf86bb0c456"
},
"noOrdinaryCompleteRecord": true,
"privatePkiAndRawTraceExcluded": true,
"sanitization": {
"checkoutPrefixRedacted": true,
"rawResourceHashPreserved": true
}
}