terry-xiaoyu пре 6 година
родитељ
комит
0e2e4e73ca
2 измењених фајлова са 3 додато и 2 уклоњено
  1. 2 2
      src/emqx_session.erl
  2. 1 0
      src/emqx_sm.erl

+ 2 - 2
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

+ 1 - 0
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)).