From eceb5e2eea554ea0f9baf7abc1b1972459854cef Mon Sep 17 00:00:00 2001 From: Sulabh Katila Date: Wed, 21 Feb 2024 19:51:58 -0500 Subject: Fixed #34806 -- Made cached_db session backend resilient to cache write errors. Co-authored-by: Natalia <124304+nessita@users.noreply.github.com> --- django/contrib/sessions/backends/cached_db.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'django') 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) -- cgit v1.3