fix(dcl): broadcast SnapshotComplete sentinel to all alarm subscribers #3
Reference in New Issue
Block a user
Delete Branch "fix/native-alarm-snapshot-complete-routing"
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?
Static-active native (MxGateway) alarms never surfaced: the SnapshotComplete framing sentinel is emitted with empty source refs and was dropped by the per-source prefix match, so NativeAlarmActor never flushed its snapshot buffer. Broadcast the sentinel to all subscribers. +regression test; 156/156 DCL tests green. Verified live on wonder (Z28061.HeartbeatTimeoutAlarm now mirrors).
The MxGateway alarm mapper emits the SnapshotComplete framing sentinel with empty SourceReference/SourceObjectReference. HandleAlarmTransitionReceived routed every transition by prefix match against the subscriber's source, so the empty-ref sentinel ('' .StartsWith("<src>.") == false) was dropped for any specific source. The NativeAlarmActor buffers snapshot conditions and only flushes them on SnapshotComplete, so statically-active native alarms delivered only in the initial snapshot (no later live transition) never surfaced. Broadcast the SnapshotComplete sentinel to all alarm subscribers (bypassing the source match + type filter) so each NativeAlarmActor's snapshot swap completes. Adds a regression test using the real empty-ref sentinel against a specific (prefix) source.