From 8385eff98ebe0a85ff145bfb826fe9e17990e9ee Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Tue, 2 Nov 2021 09:27:50 +0100 Subject: [PATCH] fix(persistent_sessions): we only need to persist if the session expired --- apps/emqx/src/emqx_channel.erl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/emqx/src/emqx_channel.erl b/apps/emqx/src/emqx_channel.erl index fc25490c4..7a5edbb48 100644 --- a/apps/emqx/src/emqx_channel.erl +++ b/apps/emqx/src/emqx_channel.erl @@ -1179,14 +1179,13 @@ terminate(_, #channel{conn_state = idle}) -> ok; terminate(normal, Channel) -> run_terminate_hook(normal, Channel); terminate({shutdown, kicked}, Channel) -> - persist_if_session(Channel), run_terminate_hook(kicked, Channel); terminate({shutdown, Reason}, Channel) when Reason =:= discarded; Reason =:= takeovered -> run_terminate_hook(Reason, Channel); terminate(Reason, Channel = #channel{will_msg = WillMsg}) -> (WillMsg =/= undefined) andalso publish_will_msg(WillMsg), - persist_if_session(Channel), + (Reason =:= expired) andalso persist_if_session(Channel), run_terminate_hook(Reason, Channel). persist_if_session(#channel{session = Session} = Channel) ->