From aa7c116c993dc11be925e3a145cc82587dba3b6f Mon Sep 17 00:00:00 2001 From: Luca Succi Date: Thu, 18 Dec 2025 11:34:01 +0100 Subject: [PATCH] Cleanup timer ref when unregistering a peer --- src/grisp_connect_cluster.erl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/grisp_connect_cluster.erl b/src/grisp_connect_cluster.erl index f308b5b..9cdc967 100644 --- a/src/grisp_connect_cluster.erl +++ b/src/grisp_connect_cluster.erl @@ -327,7 +327,11 @@ register_peer(Peer = #peer{node = Node, cookie = Cookie, % We need the full state to be sure to not remove an address used by another peer unregister_peer(#state{peers = Peers}, Peer = #peer{node = Node, fingerprint = Fingerprint, - address = Address}) -> + address = Address, timer_ref = TimerRef}) -> + case TimerRef of + undefined -> ok; + _ -> erlang:cancel_timer(TimerRef) + end, ets:delete(?FINGERPRINT_TABLE, Fingerprint), SameAddr = [N || #peer{node = N, address = A} <- maps:values(Peers), N =/= Node, A =:= Address],