#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.

Reply via email to