Fix DB-less ServiceLevel freshness and authorization remarks #724

Merged
dohertj2 merged 5 commits from fix/dbless-servicelevel-freshness into master 2026-10-13 19:03:44 -04:00
Owner

DB-less nodes could keep advertising a healthy ServiceLevel after role snapshots stopped arriving because freshness polling required a DB probe. Start the existing timer for DB-less nodes and recompute without a null-probe Ask. With no new messages, healthy follower/Primary levels age from 240/250 to 200/210 using the existing calculator; fresh snapshots restore them. DB-backed polling/timeouts, legacy behavior, elections and mutation policies are preserved.

Correct AllowAnonymous XML remarks to describe the current enabled per-node authorization, including anonymous Read denial. The documentation change leaves admission defaults and executable bytes unchanged.

Validation: latest affected Runtime suite passed 837 tests with zero failures and three existing retired-v3 skips; final cached build had zero warnings/errors. Integrated actor regression suite previously passed 35 tests. Real-timer tests cover strict age boundaries, recovery, peer-verdict expiry, shutdown and DB polling/timeout. Added direct missing-local-entry zero/retry/recovery coverage and a virtual-timer absent-snapshot startup case with a positive timer control, preserving the current no-publication startup policy. Removing snapshot guards or timer registration made both new tests fail as intended. Independent integration and test review found no actionable P1/P2 issues. Hosted run 986 passed all ten steps on final head c4b4046832: 62 TRX files, 14,656 executed tests, 573 individual skips, the 12,000-test floor and artifact upload. Superseded run 985 encountered the independently reproduced intermittent ConditionRefresh failure tracked in #728; that issue remains open. No live calls or Warm policy implementation.

Resolves #721
Resolves #722

DB-less nodes could keep advertising a healthy ServiceLevel after role snapshots stopped arriving because freshness polling required a DB probe. Start the existing timer for DB-less nodes and recompute without a null-probe Ask. With no new messages, healthy follower/Primary levels age from 240/250 to 200/210 using the existing calculator; fresh snapshots restore them. DB-backed polling/timeouts, legacy behavior, elections and mutation policies are preserved. Correct AllowAnonymous XML remarks to describe the current enabled per-node authorization, including anonymous Read denial. The documentation change leaves admission defaults and executable bytes unchanged. Validation: latest affected Runtime suite passed 837 tests with zero failures and three existing retired-v3 skips; final cached build had zero warnings/errors. Integrated actor regression suite previously passed 35 tests. Real-timer tests cover strict age boundaries, recovery, peer-verdict expiry, shutdown and DB polling/timeout. Added direct missing-local-entry zero/retry/recovery coverage and a virtual-timer absent-snapshot startup case with a positive timer control, preserving the current no-publication startup policy. Removing snapshot guards or timer registration made both new tests fail as intended. Independent integration and test review found no actionable P1/P2 issues. Hosted run 986 passed all ten steps on final head c4b404683257da195cdf20e45a923a1b336be460: 62 TRX files, 14,656 executed tests, 573 individual skips, the 12,000-test floor and artifact upload. Superseded run 985 encountered the independently reproduced intermittent ConditionRefresh failure tracked in #728; that issue remains open. No live calls or Warm policy implementation. Resolves #721 Resolves #722
dohertj2 added 4 commits 2026-10-13 15:58:48 -04:00
Author
Owner

Authoritative Actions API20:58UTC: prerequisite main run984/job3605 completed success at1bf8c614, including all solution tests, executed-test floor and artifact upload. Retained guard reports62TRX/14648executed/573individual skips>=12000; Runtime829passed/3existing skips/0failed. Required final-head run985/job3606 is now in progress at exact PR head e1feb9fbb6. Main success does not substitute for this final-head gate. PR remains open/unmerged; #721/#722 remain open. No cancellation/restart/rerun performed.

Authoritative Actions API20:58UTC: prerequisite main run984/job3605 completed success at1bf8c614, including all solution tests, executed-test floor and artifact upload. Retained guard reports62TRX/14648executed/573individual skips>=12000; Runtime829passed/3existing skips/0failed. Required final-head run985/job3606 is now in progress at exact PR head e1feb9fbb6e3a1cb78c95cdb31ee24635ab11a33. Main success does not substitute for this final-head gate. PR remains open/unmerged; #721/#722 remain open. No cancellation/restart/rerun performed.
dohertj2 added 1 commit 2026-10-13 17:19:59 -04:00
test: verify missing-snapshot ServiceLevel timer behavior
v2-ci / unit-tests (pull_request) Successful in 1h0m42s
c4b4046832
Author
Owner

Supporting run985/job3606 at earlier e1feb9f head now reports123 OPC UA integration passed/1failed: ConditionRefresh wire test observed extra Unspecified before expected Acknowledge. This is tracked separately in#728; read-only source triage and bounded unchanged local loopback reproduction are in progress. Cause is not yet proven and no assertion/product behavior has been changed. Job3606 is still active; required exact c4b40468 run986/job3607 remains waiting. PR#724 stays open and its own final-head CI remains required before merge. No CI cancellation/restart/rerun.

Supporting run985/job3606 at earlier e1feb9f head now reports123 OPC UA integration passed/1failed: ConditionRefresh wire test observed extra Unspecified before expected Acknowledge. This is tracked separately in#728; read-only source triage and bounded unchanged local loopback reproduction are in progress. Cause is not yet proven and no assertion/product behavior has been changed. Job3606 is still active; required exact c4b40468 run986/job3607 remains waiting. PR#724 stays open and its own final-head CI remains required before merge. No CI cancellation/restart/rerun.
Author
Owner

Authoritative Actions API21:59UTC: supporting run985/job3606 completed FAILURE at21:58:35, exact earlier e1feb9f head. The one failed test is ConditionRefresh wire fact tracked in#728 (123integration passed/1failed); Runtime835passed/3existing skips and other suites passed. The always-run test-count guard succeeded:62TRX,14654executed,573individual skips, minimum12000. Artifact unit-trx upload succeeded. Floor/artifact success does not make the failed test run green.

Required run986/job3607 STARTED at21:58:38, exact final PR#724 head c4b4046832. It is in_progress with no conclusion. This new run is the required merge gate; no result is assumed. #728 unchanged local reproduction FAIL/PASS/FAIL and source hypotheses remain recorded; a bounded metadata probe awaits design approval. No product/test instrumentation or CI rerun/cancel/restart. PR remains open/unmerged;#721/#722 remain open, and local #725/#726 publication remains held until#724 clears its gate.

Authoritative Actions API21:59UTC: supporting run985/job3606 completed FAILURE at21:58:35, exact earlier e1feb9f head. The one failed test is ConditionRefresh wire fact tracked in#728 (123integration passed/1failed); Runtime835passed/3existing skips and other suites passed. The always-run test-count guard succeeded:62TRX,14654executed,573individual skips, minimum12000. Artifact unit-trx upload succeeded. Floor/artifact success does not make the failed test run green. Required run986/job3607 STARTED at21:58:38, exact final PR#724 head c4b404683257da195cdf20e45a923a1b336be460. It is in_progress with no conclusion. This new run is the required merge gate; no result is assumed. #728 unchanged local reproduction FAIL/PASS/FAIL and source hypotheses remain recorded; a bounded metadata probe awaits design approval. No product/test instrumentation or CI rerun/cancel/restart. PR remains open/unmerged;#721/#722 remain open, and local #725/#726 publication remains held until#724 clears its gate.
dohertj2 merged commit c89912a93b into master 2026-10-13 19:03:44 -04:00
Sign in to join this conversation.