From 8e838d9c869083597dc9e161ae2fe37acaa90de9 Mon Sep 17 00:00:00 2001 From: Emre Yilmaz Date: Wed, 2 Dec 2015 12:34:31 +0200 Subject: Fixed #25840 -- Fixed BaseCache.get_or_set() on the DummyCache backend. This also fixes a possible data eviction race condition between setting and getting a key. Another thread could remove the key before get_and_set() accesses it again. In this case, now the default value will be returned instead of None. --- django/core/cache/backends/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'django/core/cache') diff --git a/django/core/cache/backends/base.py b/django/core/cache/backends/base.py index 186a45ddd6..af262fecdd 100644 --- a/django/core/cache/backends/base.py +++ b/django/core/cache/backends/base.py @@ -165,7 +165,7 @@ class BaseCache(object): default = default() val = self.add(key, default, timeout=timeout, version=version) if val: - return self.get(key, version=version) + return self.get(key, default, version) return val def has_key(self, key, version=None): -- cgit v1.3