#23638: Django raises exceptions on unicode in cookies/headers -------------------------------------+------------------------------------- Reporter: defcube | Owner: nobody Type: Bug | Status: closed Component: HTTP handling | Version: 1.7 Severity: Normal | Resolution: fixed Keywords: | Triage Stage: Ready for Has patch: 1 | checkin Needs tests: 0 | Needs documentation: 0 Easy pickings: 0 | Patch needs improvement: 0 | UI/UX: 0 -------------------------------------+------------------------------------- Description changed by defcube:
Old description: > I'm am cleaning up my random errors on `conjurorthegame.com`, and this > one has me stumped. Should I build a custom error emailer that ignores > these, or is it something django should fix? > > {{{ > Internal Server Error: /join1/ > Traceback (most recent call last): > File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- > packages/django/core/handlers/base.py", line 87, in get_response > response = middleware_method(request) > File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- > packages/django/contrib/sessions/middleware.py", line 15, in > process_request > session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None) > File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- > packages/django/utils/functional.py", line 55, in __get__ > res = instance.__dict__[self.func.__name__] = self.func(instance) > File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- > packages/django/core/handlers/wsgi.py", line 143, in COOKIES > raw_cookie = get_str_from_wsgi(self.environ, 'HTTP_COOKIE', '') > File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- > packages/django/core/handlers/wsgi.py", line 262, in get_str_from_wsgi > return value if six.PY2 else value.encode(ISO_8859_1).decode(UTF_8) > UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 33: > invalid continuation byte > }}} > > Unparsed cookies. > {{{ > Request repr(): > <WSGIRequest > path:/join1/, > GET:<QueryDict: {}>, > POST:<QueryDict: {}>, > COOKIES:<could not parse>, > META:{'CONTENT_LENGTH': '', > 'CONTENT_TYPE': '', > 'DOCUMENT_ROOT': '/usr/local/nginx/html', > 'HTTP_ACCEPT': > 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch', > 'HTTP_ACCEPT_LANGUAGE': 'it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4', > 'HTTP_CONNECTION': 'keep-alive', > 'HTTP_COOKIE': > 'csrftoken=89uzZHmJ9ALZXxSTvVnEueCçWÈ\x03Ç\x9c(êh]Û\x8eÉ÷\x89&Æ/\x19á\x0f\t' > '*£\x15Îè×MJ\x0e.1412634272', > . . . > }}} New description: I'm am cleaning up my random errors, and this one has me stumped. Should I build a custom error emailer that ignores these, or is it something django should fix? {{{ Internal Server Error: /join1/ Traceback (most recent call last): File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- packages/django/core/handlers/base.py", line 87, in get_response response = middleware_method(request) File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- packages/django/contrib/sessions/middleware.py", line 15, in process_request session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None) File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- packages/django/utils/functional.py", line 55, in __get__ res = instance.__dict__[self.func.__name__] = self.func(instance) File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- packages/django/core/handlers/wsgi.py", line 143, in COOKIES raw_cookie = get_str_from_wsgi(self.environ, 'HTTP_COOKIE', '') File "/home/exotic/.pyenv/versions/3.4.1/lib/python3.4/site- packages/django/core/handlers/wsgi.py", line 262, in get_str_from_wsgi return value if six.PY2 else value.encode(ISO_8859_1).decode(UTF_8) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 33: invalid continuation byte }}} Unparsed cookies. {{{ Request repr(): <WSGIRequest path:/join1/, GET:<QueryDict: {}>, POST:<QueryDict: {}>, COOKIES:<could not parse>, META:{'CONTENT_LENGTH': '', 'CONTENT_TYPE': '', 'DOCUMENT_ROOT': '/usr/local/nginx/html', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch', 'HTTP_ACCEPT_LANGUAGE': 'it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'csrftoken=89uzZHmJ9ALZXxSTvVnEueCçWÈ\x03Ç\x9c(êh]Û\x8eÉ÷\x89&Æ/\x19á\x0f\t' '*£\x15Îè×MJ\x0e.1412634272', . . . }}} -- -- Ticket URL: <https://code.djangoproject.com/ticket/23638#comment:6> 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 post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/065.153db128cb4e59a1de0bd7e7f6227070%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.