fix(sessds): drop everything related to session on CleanStart

This commit is contained in:
Andrew Mayorov 2023-12-01 19:35:05 +03:00
parent ee9a98f0a4
commit 47bc747323
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
1 changed files with 9 additions and 5 deletions

View File

@ -646,7 +646,7 @@ session_open(SessionId, NewConnInfo) ->
session(). session().
session_ensure_new(SessionId, ConnInfo) -> session_ensure_new(SessionId, ConnInfo) ->
transaction(fun() -> transaction(fun() ->
ok = session_drop_subscriptions(SessionId), ok = session_drop_records(SessionId),
Session = export_session(session_create(SessionId, ConnInfo)), Session = export_session(session_create(SessionId, ConnInfo)),
Session#{ Session#{
subscriptions => subs_new(), subscriptions => subs_new(),
@ -693,12 +693,16 @@ session_set_last_alive_at(SessionRecord0, LastAliveAt) ->
-spec session_drop(id()) -> ok. -spec session_drop(id()) -> ok.
session_drop(DSSessionId) -> session_drop(DSSessionId) ->
transaction(fun() -> transaction(fun() ->
ok = session_drop_records(DSSessionId),
ok = mnesia:delete(?SESSION_TAB, DSSessionId, write)
end).
-spec session_drop_records(id()) -> ok.
session_drop_records(DSSessionId) ->
ok = session_drop_subscriptions(DSSessionId), ok = session_drop_subscriptions(DSSessionId),
ok = session_drop_pubranges(DSSessionId), ok = session_drop_pubranges(DSSessionId),
ok = session_drop_offsets(DSSessionId), ok = session_drop_offsets(DSSessionId),
ok = session_drop_streams(DSSessionId), ok = session_drop_streams(DSSessionId).
ok = mnesia:delete(?SESSION_TAB, DSSessionId, write)
end).
-spec session_drop_subscriptions(id()) -> ok. -spec session_drop_subscriptions(id()) -> ok.
session_drop_subscriptions(DSSessionId) -> session_drop_subscriptions(DSSessionId) ->