# HG changeset patch # User Marcin Kuzminski # Date 2018-08-02 10:13:00 # Node ID 474abf7053701ebef13a8590fa1aab550259459b # Parent a5198975653dbdd1b9cc7144ed5bf8810649d2f8 caches: use safer method of purging keys from memory dict. During some concurrency tests we detected that has_key has a race condition, and catching exception is safer. diff --git a/rhodecode/lib/rc_cache/backends.py b/rhodecode/lib/rc_cache/backends.py --- a/rhodecode/lib/rc_cache/backends.py +++ b/rhodecode/lib/rc_cache/backends.py @@ -52,13 +52,15 @@ class LRUMemoryBackend(memory_backend.Me super(LRUMemoryBackend, self).__init__(arguments) def delete(self, key): - if self._cache.has_key(key): + try: del self._cache[key] + except KeyError: + # we don't care if key isn't there at deletion + pass def delete_multi(self, keys): for key in keys: - if self._cache.has_key(key): - del self._cache[key] + self.delete(key) class Serializer(object):