From 031f85a37aeaa68080b42d09585c522f524c015d Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Tue, 17 Jan 2012 18:06:36 +0100 Subject: [PATCH] [FIX] correct session cleaning bzr revid: chs@openerp.com-20120117170636-7z6epwzt7rlrtaip --- addons/web/common/http.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web/common/http.py b/addons/web/common/http.py index 681a38384a2..492d805d317 100644 --- a/addons/web/common/http.py +++ b/addons/web/common/http.py @@ -328,6 +328,7 @@ def session_context(request, storage_path, session_cookie='sessionid'): # Remove all OpenERPSession instances with no uid, they're generated # either by login process or by HTTP requests without an OpenERP # session id, and are generally noise + removed_sessions = [] for key, value in request.session.items(): if (isinstance(value, session.OpenERPSession) and not value._uid @@ -335,6 +336,7 @@ def session_context(request, storage_path, session_cookie='sessionid'): and value._creation_time + (60*5) < time.time() # FIXME do not use a fixed value ): _logger.debug('remove session %s', key) + removed_sessions.append(key) del request.session[key] with session_lock: @@ -364,7 +366,7 @@ def session_context(request, storage_path, session_cookie='sessionid'): # add missing keys for k, v in in_store.iteritems(): - if k not in request.session: + if k not in request.session and k not in removed_sessions: request.session[k] = v session_store.save(request.session)