aprs.me/lib
Graham McIntire 753fa50463
Fix ConnectionMonitor deadlock and LeaderElection silent leadership loss
ConnectionMonitor.gather_cluster_stats was calling :rpc.call(Node.self())
which GenServer.call'd back into itself while blocked in handle_info,
causing a 5-second deadlock timeout every 30 seconds. Fixed by computing
local stats directly from state.

LeaderElection never verified that a leader still held the :global
registration. After :global conflict resolution (two isolated nodes
merging), the loser was silently unregistered but stayed is_leader: true
forever, causing both pods to connect to APRS-IS with the same callsign
in a reconnect loop. Fixed by adding verify_leadership/1 to
check_leadership which detects lost registrations and steps down.
2026-02-19 18:18:31 -06:00
..
aprsme Fix ConnectionMonitor deadlock and LeaderElection silent leadership loss 2026-02-19 18:18:31 -06:00
aprsme_web Fix slideover toggle: always-light button, map resize via LiveView JS 2026-02-19 16:02:08 -06:00
mix/tasks Disable APRS-IS connection when running mix tasks 2026-02-18 14:52:24 -06:00
aprs_web.ex upgrade more with modern phoenix 2025-07-05 08:04:06 -05:00
aprsme.ex refactor to use external parser 2025-06-24 14:22:09 -05:00