summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSulabh Katila <sulabhkatila@gmail.com>2024-02-21 19:51:58 -0500
committerGitHub <noreply@github.com>2024-02-21 21:51:58 -0300
commiteceb5e2eea554ea0f9baf7abc1b1972459854cef (patch)
tree5327cc03f0462e3c2c3feeab939bf698534f95a9 /django
parent6feaad9113fd38ba3970032d2b7856c77403e29e (diff)
Fixed #34806 -- Made cached_db session backend resilient to cache write errors.
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Diffstat (limited to 'django')
-rw-r--r--django/contrib/sessions/backends/cached_db.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/django/contrib/sessions/backends/cached_db.py b/django/contrib/sessions/backends/cached_db.py
index 3125a71cd0..a2a8cf47af 100644
--- a/django/contrib/sessions/backends/cached_db.py
+++ b/django/contrib/sessions/backends/cached_db.py
@@ -2,12 +2,16 @@
Cached, database-backed sessions.
"""
+import logging
+
from django.conf import settings
from django.contrib.sessions.backends.db import SessionStore as DBStore
from django.core.cache import caches
KEY_PREFIX = "django.contrib.sessions.cached_db"
+logger = logging.getLogger("django.contrib.sessions")
+
class SessionStore(DBStore):
"""
@@ -52,7 +56,10 @@ class SessionStore(DBStore):
def save(self, must_create=False):
super().save(must_create)
- self._cache.set(self.cache_key, self._session, self.get_expiry_age())
+ try:
+ self._cache.set(self.cache_key, self._session, self.get_expiry_age())
+ except Exception:
+ logger.exception("Error saving to cache (%s)", self._cache)
def delete(self, session_key=None):
super().delete(session_key)