mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-10-06 11:28:22 +00:00
The previous change only stopped the logger listener from scheduling reconnects, but Quartz's relay pool is driven by the relays referenced in active subscriptions. NotificationSubscription.updateFilter re-subscribed every 30s with the full relay set, so the pool kept opening a socket to an unreachable relay on every refresh. Move the per-relay failure tracking into a shared RelayHealthTracker and exclude dead relays from the subscription relay sets in updateFilter, so a dead relay leaves the pool entirely and is no longer reconnected. Dead-relay state is cleared on a successful connection, on every OS network change (ConnectivityService), and on a manual reconnect (ReconnectReceiver), so relays get a fresh chance to recover. https://claude.ai/code/session_01SLv8ZEooFiXErAvpARtz2Y