diff --git a/src/emqx_session.erl b/src/emqx_session.erl index 7d8722c68..b4a3032ce 100644 --- a/src/emqx_session.erl +++ b/src/emqx_session.erl @@ -321,7 +321,7 @@ resume(SPid, SessAttrs) -> %% @doc Discard the session -spec(discard(spid(), ByPid :: pid()) -> ok). discard(SPid, ByPid) -> - gen_server:call(SPid, {discard, ByPid}, infinity). + gen_server:call(SPid, {discard, ByPid}). -spec(update_expiry_interval(spid(), timeout()) -> ok). update_expiry_interval(SPid, Interval) -> @@ -329,7 +329,7 @@ update_expiry_interval(SPid, Interval) -> -spec(close(spid()) -> ok). close(SPid) -> - gen_server:call(SPid, close, infinity). + gen_server:call(SPid, close). %%------------------------------------------------------------------------------ %% gen_server callbacks diff --git a/src/emqx_sm.erl b/src/emqx_sm.erl index 256425f5a..f6f2fbf47 100644 --- a/src/emqx_sm.erl +++ b/src/emqx_sm.erl @@ -116,6 +116,7 @@ discard_session(ClientId, ConnPid) when is_binary(ClientId) -> try emqx_session:discard(SessPid, ConnPid) catch _:Error:_Stk -> + unregister_session(ClientId, SessPid), ?LOG(warning, "Failed to discard ~p: ~p", [SessPid, Error]) end end, lookup_session_pids(ClientId)).