Status: New
Owner:
Labels: Type-Defect Priority-Medium
New issue 2377 by petit...@gmail.com: HTTP 500 error in the tooltip on
hover of a user name with accented characters in name
http://code.google.com/p/reviewboard/issues/detail?id=2377
* NOTE: Do not post confidential information in this bug report. *
* If you need immediate support, please contact*
* reviewbo...@googlegroups.com *
What version are you running?
1.6
What's the URL of the page containing the problem?
https://reviewboard.ourdomain.com/r/1649/
What steps will reproduce the problem?
1. In the Updates section after the description of the review request, let
your mouse cursor over the name of someone who updated the request. If the
name contains accented characters such as é or ç, an HTTP 500 error is
displayed in the tooltip.
What is the expected output? What do you see instead?
Expected: The user information.
Actually: An HTTP 500 error.
What operating system are you using? What browser?
Windows 7 Enterprise Service Pack 1 x64
Google Chrome v15.0.874.106
Please provide any additional information below.
Here is some parts of the HTTP 500 error:
Environment:
Request Method: GET
Request URL: https://reviewboard.corp.coveo.com/users/aturgeon/infobox/
Django Version: 1.3
Python Version: 2.6.6
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.markup',
'django.contrib.sites',
'django.contrib.sessions',
'djblets.datagrid',
'djblets.feedview',
'djblets.gravatars',
'djblets.log',
'djblets.siteconfig',
'djblets.util',
'djblets.webapi',
'reviewboard.accounts',
'reviewboard.admin',
'reviewboard.attachments',
'reviewboard.changedescs',
'reviewboard.diffviewer',
'reviewboard.notifications',
'reviewboard.reports',
'reviewboard.reviews',
'reviewboard.scmtools',
'reviewboard.site',
'reviewboard.webapi',
'django_evolution']
Installed Middleware:
('django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.middleware.http.ConditionalGetMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'djblets.siteconfig.middleware.SettingsMiddleware',
'reviewboard.admin.middleware.LoadSettingsMiddleware',
'djblets.log.middleware.LoggingMiddleware',
'reviewboard.admin.middleware.CheckUpdatesRequiredMiddleware',
'reviewboard.admin.middleware.X509AuthMiddleware',
'reviewboard.site.middleware.LocalSiteMiddleware')
Traceback:
File /usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/core/handlers/base.py
in
get_response
111. response = callback(request, *callback_args,
**callback_kwargs)
File /usr/local/lib/python2.6/dist-packages/ReviewBoard-1.6-py2.6.egg/reviewboard/accounts/decorators.py
in
_check
19. return login_required(view_func)(*args, **kwargs)
File /usr/local/lib/python2.6/dist-packages/Djblets-0.6.10-py2.6.egg/djblets/auth/util.py
in
_checklogin
46. return view_func(request, *args, **kwargs)
File /usr/local/lib/python2.6/dist-packages/ReviewBoard-1.6-py2.6.egg/reviewboard/reviews/views.py
in
user_infobox
1166. set_etag(response, etag)
File /usr/local/lib/python2.6/dist-packages/Djblets-0.6.10-py2.6.egg/djblets/util/http.py
in
set_etag
68. response['ETag'] = etag
File /usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/http/__init__.py
in
__setitem__
528. header, value = self._convert_to_ascii(header, value)
File /usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/http/__init__.py
in
_convert_to_ascii
517. value = value.encode('us-ascii')
Exception Type: UnicodeEncodeError at /users/aturgeon/infobox/
Exception Value: 'ascii' codec can't encode character u'\xe9' in position
2: ordinal not in range(128), HTTP response headers must be in US-ASCII
format
/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/http/__init__.py
in
_convert_to_ascii
+ '\n\n' + self.content
def _convert_to_ascii(self, *values):
Converts all values to ascii strings.
for value in values:
if isinstance(value, unicode):
try:
value = value.encode('us-ascii') ...
except UnicodeError, e:
e.reason += ', HTTP response headers must be in
US-ASCII format'
raise
else:
value = str(value)
if '\n' in value or '\r' in value:
▶ Local vars
VariableValue
values
('ETag',
u'Am\xe9lie:Turgeron:aturg...@coveo.com:2011-11-09
09:48:26:1315518092:True')
self