#32643: CookieStorage for contrib.messages crashes after upgrade to django 3.2 --------------------------------------------------+------------------------ Reporter: Jan Pieter Waagmeester | Owner: nobody Type: Bug | Status: new Component: contrib.messages | Version: 3.2 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | --------------------------------------------------+------------------------ After upgrading to django 3.2, a prevously stored cookie for contrib.messages crashes in
https://github.com/django/django/blob/d6314c4c2ef647efe0d12450214fc5b4a4055290/django/contrib/messages/storage/cookie.py#L175 Django Version: 3.2 Python Version: 3.8.2 {{{ Traceback (most recent call last): File "/home/obs/virtualenv/lib/python3.8/site- packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/obs/virtualenv/lib/python3.8/site- packages/django/utils/deprecation.py", line 119, in __call__ response = self.process_response(request, response) File "/home/obs/virtualenv/lib/python3.8/site- packages/django/contrib/messages/middleware.py", line 23, in process_response unstored_messages = request._messages.update(response) File "/home/obs/virtualenv/lib/python3.8/site- packages/django/contrib/messages/storage/base.py", line 127, in update messages = self._loaded_messages + self._queued_messages File "/home/obs/virtualenv/lib/python3.8/site- packages/django/contrib/messages/storage/base.py", line 79, in _loaded_messages messages, all_retrieved = self._get() File "/home/obs/virtualenv/lib/python3.8/site- packages/django/contrib/messages/storage/fallback.py", line 25, in _get messages, all_retrieved = storage._get() File "/home/obs/virtualenv/lib/python3.8/site- packages/django/contrib/messages/storage/cookie.py", line 86, in _get messages = self._decode(data) File "/home/obs/virtualenv/lib/python3.8/site- packages/django/contrib/messages/storage/cookie.py", line 175, in _decode return self.signer.unsign_object(data, serializer=MessageSerializer) File "/home/obs/virtualenv/lib/python3.8/site- packages/django/core/signing.py", line 195, in unsign_object data = b64_decode(base64d) File "/home/obs/virtualenv/lib/python3.8/site- packages/django/core/signing.py", line 68, in b64_decode return base64.urlsafe_b64decode(s + pad) File "/usr/lib/python3.8/base64.py", line 133, in urlsafe_b64decode return b64decode(s) File "/usr/lib/python3.8/base64.py", line 87, in b64decode return binascii.a2b_base64(s) Exception Type: Error at /user/login/ Exception Value: Invalid base64-encoded string: number of data characters (369) cannot be 1 more than a multiple of 4 }}} (redacted) contents of the 'messages' cookie: {{{ '[["__json_message",0,25,"Successfully signed in as ' 'ad...@example.org."],["__json_message",0,25,"Successfully ' 'signed in as jieter."],["__json_message",0,25,"Ingelogd als ' 'ad...@example.org."],["__json_message",0,25,"Ingelogd ' 'als ' 'ad...@example.org."],["__json_message",0,20,"Bevestigingsmail ' 'verzonden naar t...@example.nl."],["__json_message",0,25,"Ingelogd ' 'als ' 't...@example.nl."]]:1lTkj1:j_3PlpYSKiqPTMAB6_p2Q00eE8j6k7n0Sg_-_IpXG7Y') }}} -- Ticket URL: <https://code.djangoproject.com/ticket/32643> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/049.cc981576a8f11dee6a67d06353eb082e%40djangoproject.com.