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