diff --git a/apps/emqx/src/emqx_persistent_session_ds.erl b/apps/emqx/src/emqx_persistent_session_ds.erl index 1e35c12fe..35e0677c2 100644 --- a/apps/emqx/src/emqx_persistent_session_ds.erl +++ b/apps/emqx/src/emqx_persistent_session_ds.erl @@ -132,8 +132,12 @@ open_session(ClientID, Conf) -> -spec destroy(session() | clientinfo()) -> ok. destroy(#{id := ClientID}) -> - emqx_ds:session_drop(ClientID); + destroy_session(ClientID); destroy(#{clientid := ClientID}) -> + destroy_session(ClientID). + +destroy_session(ClientID) -> + _ = ensure_all_iterators_closed(ClientID), emqx_ds:session_drop(ClientID). %%--------------------------------------------------------------------