OPC UA ConditionRefresh on equipment/device folder subscriptions can still be followed by older deferred events #855
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Residual from #854. Server-object (
i=2253) subscriptions are fixed (sequence cut + per-item replay,ConditionRefreshDeferralWireTests). Folder (notifier) subscriptions keep the old behaviour under overload: up to 4096 events already accepted by the SDK'sMonitoredNode2channel, and the SDK's per-(item, event type, source) verdict cache leaves no per-event, per-subscription decision point. Events stay in per-condition order with the newest last, so clients converge. Revisit if a folder-subscribing consumer is affected; options need SDK changes or our own per-item delivery for folder items. Documented in docs/security.md.Owner decision 2026-11-11: build per-item delivery for folder (notifier) event subscriptions, so that ConditionRefresh on folder items gets the same sequence-cut guarantee as the Server object. This is event-path work and needs repeated independent review.
Done. Folder event items get per-item delivery with the same ConditionRefresh cut, per-event ACL and liveness checks as the Server object. Four review rounds. A shared per-report projection then brought the Lock hold at N=50 stalled items down to p50 81–181 µs (the first version measured 0.4–1.6 ms). The large-N / large-queue residual is #870. Pushed to master in
e857135e..7a27ef1f; full suite green (20 projects, 0 failures, 0 warnings).