From 34fb7d7471b3bcf3cc46aad7bc4daf83128a30e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 25 Mar 2015 18:56:52 +0100 Subject: [PATCH] Drop all cache of a database when it is dropped issue4584 review11121002 --- trytond/cache.py | 5 +++++ trytond/protocols/dispatcher.py | 1 + 2 files changed, 6 insertions(+) diff --git a/trytond/cache.py b/trytond/cache.py index 976cf635c1..2caf83f2ca 100644 --- a/trytond/cache.py +++ b/trytond/cache.py @@ -116,6 +116,11 @@ class Cache(object): Cache._resets[dbname].clear() cursor.commit() + @classmethod + def drop(cls, dbname): + for inst in cls._cache_instance: + inst._cache.pop(dbname, None) + class LRUDict(OrderedDict): """ diff --git a/trytond/protocols/dispatcher.py b/trytond/protocols/dispatcher.py index a0eca0a3d1..e22994cc6f 100644 --- a/trytond/protocols/dispatcher.py +++ b/trytond/protocols/dispatcher.py @@ -269,6 +269,7 @@ def drop(database_name, password): else: logger.info('DROP DB: %s', database_name) Pool.stop(database_name) + Cache.drop(database_name) return True