aprs.me/test/aprsme/cluster
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
..
connection_manager_test.exs more tests 2026-02-09 17:21:16 -06:00
leader_election_test.exs Fix ConnectionMonitor deadlock and LeaderElection silent leadership loss 2026-02-19 18:18:31 -06:00
packet_distributor_test.exs Performance improvements, code cleanup, remove sobelow 2026-02-19 14:51:01 -06:00
packet_receiver_test.exs Add tests for 14 modules with 0% coverage 2026-02-09 17:19:50 -06:00
topology_test.exs Add tests for 14 modules with 0% coverage 2026-02-09 17:19:50 -06:00