What version are you running?
Our main server is currently 1.0rc3, but I also saw this on a clone of the
server that I was using for testing which was upgraded to 1.0.5.1.
What's the URL of the page containing the problem?
http://reviewboard.eng.vmware.com/r/99124/ (this applies to a very small
number of review request pages)
What steps will reproduce the problem?
1. Try to access the page.
What is the expected output? What do you see instead?
This should show the review request page, but instead you get a 500 error.
Please provide any additional information below.
Here's the (sanitized) trace:
Traceback (most recent call last):
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/core/handlers/base.py",
line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.5.1-py2.5.egg/reviewboard/accounts/decorators.py",
line 27, in _check
return view_func(*args, **kwargs)
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.0.5.1-py2.5.egg/reviewboard/reviews/views.py",
line 163, in review_detail
for changedesc in changedescs:
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/db/models/query.py",
line 106, in _result_iter
self._fill_cache()
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/db/models/query.py",
line 692, in _fill_cache
self._result_cache.append(self._iter.next())
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/db/models/query.py",
line 251, in iterator
obj = self.model(*row[index_start:aggregate_start])
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/db/models/base.py",
line 324, in __init__
signals.post_init.send(sender=self.__class__, instance=self)
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/dispatch/dispatcher.py",
line 166, in send
response = receiver(signal=self, sender=sender, **named)
File
"/usr/lib/python2.5/site-packages/Djblets-0.5.5-py2.5.egg/djblets/util/fields.py",
line 174, in post_init
value = self.loads(value)
File
"/usr/lib/python2.5/site-packages/Djblets-0.5.5-py2.5.egg/djblets/util/fields.py",
line 206, in loads
val = eval(val)
File "<string>", line 1
{"diff": {"added": [["Diff r2", "/r/96297/diff/2/", 250116]]},
"testing_done": {"new": [""], "old": ["[I've removed a rather large amount
of text here, but it ends with...] GetFileContents:: Ge
^
SyntaxError: EOL while scanning single-quoted string
The malformed string of python being eval'ed is, suspiciously, 65536 chars
long, so presumably something somewhere is cutting it off (I don't know the
various string limits involved very well so I'm not sure what level that
would happen at).
I'm fine with totally rejecting this much text if this limit is annoying to
work around (I may need to... have a talk with the folks who are posting
this much stuff in their change descriptions), but it would be nice if we
rejected it when the diff and associated data was uploaded so it didn't
result in a broken review request page.