#27308: BytesWarning exception raised when running with python 3 -bb option
-------------------------------------------+--------------------
     Reporter:  Gustavo J. A. M. Carneiro  |      Owner:  nobody
         Type:  Uncategorized              |     Status:  new
    Component:  Uncategorized              |    Version:  1.10
     Severity:  Normal                     |   Keywords:
 Triage Stage:  Unreviewed                 |  Has patch:  0
Easy pickings:  0                          |      UI/UX:  0
-------------------------------------------+--------------------
 When your template file does not exist, naturally Django gives an
 exception.  But if TEMPLATE_DEBUG is True, it also tries to generate a
 pretty html traceback, and this is where the bug is, if you try to run
 with the python 3 -bb option, which complains when you try to do str() on
 a bytes value.

 I have Django version 1.10.1.

 {{{
 $ python3 -bb
 Python 3.5.2 (default, Sep 10 2016, 08:21:44)
 [GCC 5.4.0 20160609] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> str(b'')
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 BytesWarning: str() on a bytes instance
 >>> repr(b'')
 "b''"
 >>>
 }}}

 Traceback:

 {{{
 2016-10-03 17:47:29,582 ERROR production.py:138 GET /login ->
 TemplateDoesNotExist(b'loginxxx.html',)
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>
 Internal Server Error: /login
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>
 2016-10-03 17:47:29,583 ERROR exception.py:124 Internal Server Error:
 /login
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>
 2016-10-03 17:47:29,599 ERROR production.py:138 GET /login ->
 BytesWarning('str() on a bytes instance',)
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/mollybet/apps/home/geoipblocking.py",
 line 17, in middleware
     return get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 41, in inner
     response = response_for_exception(request, exc)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 86, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 128, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 316, in get_traceback_html
     c = Context(self.get_traceback_data(), use_l10n=False)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 308, in get_traceback_data
     c['exception_value'] = smart_text(self.exc_value, errors='replace')
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 41, in smart_text
     return force_text(s, encoding, strings_only, errors)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 76, in force_text
     s = six.text_type(s)
 BytesWarning: str() on a bytes instance
 Internal Server Error: /login
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/mollybet/apps/home/geoipblocking.py",
 line 17, in middleware
     return get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 41, in inner
     response = response_for_exception(request, exc)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 86, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 128, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 316, in get_traceback_html
     c = Context(self.get_traceback_data(), use_l10n=False)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 308, in get_traceback_data
     c['exception_value'] = smart_text(self.exc_value, errors='replace')
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 41, in smart_text
     return force_text(s, encoding, strings_only, errors)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 76, in force_text
     s = six.text_type(s)
 BytesWarning: str() on a bytes instance
 2016-10-03 17:47:29,601 ERROR exception.py:124 Internal Server Error:
 /login
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/mollybet/apps/home/geoipblocking.py",
 line 17, in middleware
     return get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 41, in inner
     response = response_for_exception(request, exc)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 86, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 128, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 316, in get_traceback_html
     c = Context(self.get_traceback_data(), use_l10n=False)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 308, in get_traceback_data
     c['exception_value'] = smart_text(self.exc_value, errors='replace')
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 41, in smart_text
     return force_text(s, encoding, strings_only, errors)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 76, in force_text
     s = six.text_type(s)
 BytesWarning: str() on a bytes instance
 2016-10-03 17:47:29,687 ERROR production.py:138 GET /login ->
 BytesWarning('str() on a bytes instance',)
 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 185, in _get_response
     response = wrapped_callback(request, *callback_args,
 **callback_kwargs)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/decorators.py", line 149, in _wrapped_view
     response = view_func(request, *args, **kwargs)
   File "/home/gjc/projects/molly/mollybet/apps/home/views.py", line 124,
 in login
     new_molly_url=settings.NEW_MOLLY_URL)
   File "/home/gjc/projects/molly/mollybet/webutils.py", line 167, in
 render
     t = loader.get_template((name + '.html').encode("ascii"))
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/template/loader.py", line 25, in get_template
     raise TemplateDoesNotExist(template_name, chain=chain)
 django.template.exceptions.TemplateDoesNotExist: <unprintable
 TemplateDoesNotExist object>

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/mollybet/apps/home/geoipblocking.py",
 line 17, in middleware
     return get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 41, in inner
     response = response_for_exception(request, exc)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 86, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 128, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 316, in get_traceback_html
     c = Context(self.get_traceback_data(), use_l10n=False)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 308, in get_traceback_data
     c['exception_value'] = smart_text(self.exc_value, errors='replace')
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 41, in smart_text
     return force_text(s, encoding, strings_only, errors)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/utils/encoding.py", line 76, in force_text
     s = six.text_type(s)
 BytesWarning: str() on a bytes instance

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 39, in inner
     response = get_response(request)
   File "/home/gjc/projects/molly/mollybet/apps/home/auth.py", line 113, in
 middleware
     return get_response(request)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 41, in inner
     response = response_for_exception(request, exc)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 86, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 128, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/gjc/projects/molly/env/lib/python3.4/site-
 packages/django/views/debug.py", line 317, in get_traceback_html
     return t.render(c)
 [...]
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/27308>
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.a58be416ae64653865ee6a7062c38800%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to