From 60068771c7831654c404aaf6dfe8c39fdf7d6718 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 21 May 2013 15:05:10 +0200 Subject: [PATCH] Fixed a lingering portal session when connection was closed uncleanly. This could in some situations lead to out-of-sync sessions in MULTISESSION_MODE=2. --- src/server/sessionhandler.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/sessionhandler.py b/src/server/sessionhandler.py index 2542b3e7e8..34ca786ec8 100644 --- a/src/server/sessionhandler.py +++ b/src/server/sessionhandler.py @@ -434,6 +434,10 @@ class PortalSessionHandler(SessionHandler): Called from portal side when the connection is closed from the portal side. """ sessid = session.sessid + if sessid in self.sessions: + del self.sessions[sessid] + del session + # tell server to also delete this session self.portal.amp_protocol.call_remote_ServerAdmin(sessid, operation=PDISCONN) @@ -473,7 +477,7 @@ class PortalSessionHandler(SessionHandler): to sync on all sessions """ to_save = [sessid for sessid in serversessions if sessid in self.sessions] - to_delete = [sessid for sessid in serversessions if sessid not in to_save] + to_delete = [sessid for sessid in self.sessions if sessid not in to_save] # save protocols for sessid in to_save: self.sessions[sessid].load_sync_data(serversessions[sessid])