3760: Internal Error viewing Server Logs due to character encoding

msunde
Feb. 26, 2015
What version are you running?
2.0.12 with the patch for bug #3716 manually applied.


What's the URL of the page containing the problem?
http://review.aurea.local/admin/log/server/

What steps will reproduce the problem?
1. Click on the server log link.
2. Result is a page showing:
Something broke! (Error 500)
It appears something broke when you tried to go to here. This is either a bug in Review Board or a server configuration error. Please report this to your administrator.

What is the expected output? What do you see instead?
Be able to see the logs.

What operating system are you using? What browser?
Latest version of Amazon linux.

Please provide any additional information below.

------------
Searching the review board logs, I see the following lines with the problematic character:
2015-01-30 13:14:23,713 - DEBUG -  - Cache miss for key diffviewer/diff_file_fragment.html-1-3-16969-collapsed-highlighting-es-1422623530.
2015-01-30 13:16:09,485 - DEBUG -  - DiffParser.parse: Beginning parse of diff, size = 11575
2015-01-30 13:16:09,486 - DEBUG -  - DiffParser.parse: Finished parsing diff.
2015-01-30 13:16:09,487 - ERROR - None - jose.granados - /api/review-requests/694/diffs/ - Error uploading new diff: Unable to parse diff revision header '(revisión: 66857)'
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/webapi/resources/diff.py", line 292, in create
    request.FILES.get('parent_diff_path'))
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/reviews/forms.py", line 116, in create
    history)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/diffviewer/forms.py", line 69, in create
    request=self.request)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/diffviewer/managers.py", line 156, in create_from_upload
    save=save)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/diffviewer/managers.py", line 182, in create_from_data
    check_existence=(not parent_diff_file_contents)))
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/diffviewer/managers.py", line 278, in _process_files
    copied=f.copied)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.12-py2.6.egg/reviewboard/scmtools/svn/__init__.py", line 272, in parse_diff_revision
    revision_str)
SCMError: Unable to parse diff revision header '(revisi\xc3\xb3n: 66857)'
2015-01-30 13:16:50,585 - DEBUG -  - DiffParser.parse: Beginning parse of diff, size = 11573
2015-01-30 13:16:50,587 - DEBUG -  - DiffParser.parse: Finished parsing diff.


------------
Here is the error when trying to load the event logs:

2015-02-06 00:56:59,976 - ERROR -  - Exception thrown for user msunde at http://review.aurea.local/admin/log/server/

'ascii' codec can't decode byte 0xc3 in position 128: ordinal not in range(128)
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/core/handlers/base.py", line 112, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/contrib/admin/views/decorators.py", line 17, in _checklogin
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/Djblets-0.8.14-py2.6.egg/djblets/log/views.py", line 277, in server_log
    'sort_type': sort_type,
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/shortcuts/__init__.py", line 29, in render_to_response
    return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/loader.py", line 164, in render_to_string
    return t.render(Context(dictionary))
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 140, in render
    return self._render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 854, in render_node
    return node.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/loader_tags.py", line 123, in render
    return compiled_parent._render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 854, in render_node
    return node.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/loader_tags.py", line 123, in render
    return compiled_parent._render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 854, in render_node
    return node.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 854, in render_node
    return node.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/base.py", line 854, in render_node
    return node.render(context)
  File "/usr/lib/python2.6/site-packages/Django-1.6.9-py2.6.egg/django/template/defaulttags.py", line 155, in render
    values = list(values)
  File "/usr/lib/python2.6/site-packages/Djblets-0.8.14-py2.6.egg/djblets/log/views.py", line 148, in iter_log_lines
    line_info[2] + "\n" + line)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 128: ordinal not in range(128)

------------

I do not have the steps that generated the original error.
#1 msunde
This might be one of the symptoms of bug #3784
david
#2 david
  • +EasyFix
    +Project-Djblets
david
#3 david
Fixed in djblets release-0.8.x (1bb4b0b). Thanks!
  • +Fixed