fix(communication): alarm aggregator reconcile tick does not reopen while a backoff reconnect is pending (double subscribe; surfaced by review 2026-10-21 03/R-2 work)

This commit is contained in:
Joseph Doherty
2026-10-22 06:42:18 -04:00
parent c5add11546
commit f4d328aecc
@@ -568,7 +568,9 @@ public sealed class SiteAlarmAggregatorActor : ReceiveActor, IWithTimers
// A down stream is reopened in preference to fanning out: the reopen's connect
// callback seeds by itself, so doing both would double the work.
var reopening = false;
if (_streamDown && !_openInFlight)
// Not while a backoff reconnect is already scheduled: the tick used to open a stream
// and the pending ReconnectAlarmStream then opened a second one (a double subscribe).
if (_streamDown && !_openInFlight && !Timers.IsTimerActive(ReconnectTimerKey))
{
_log.Info("Site-alarm gRPC stream for {0} was down; reopening on reconcile tick", _siteIdentifier);
if (_retryBudgetExhausted)