1821: Review Board 1.0.9 is not compatible with Djblets 0.6.4.

sskr*****@gmai***** (Google Code) (Is this you? Claim this profile.)
July 30, 2011
What version are you running?

1.0.9 (updated from 1.0.5.1)

What's the URL of the page containing the problem?

Its confidentional information.

What steps will reproduce the problem?

1. Create some review.
2. Try to update diff with new patch (used update Diff button)

What is the expected output? What do you see instead?

I expect to see updated diff info.
Instead of that I see error message on top of diff screen with text
"Error:
Saving the form failed due to a server error: 0 n/a
Please try again later. If this continues to happen, please report it to your administrator."
If I try to view details, Review Board show me screen with text "Something broke! (Error 500)".

What operating system are you using? What browser?

Windows XP
Firefox 3.6.9

Please provide any additional information below.

memcached restarted after Review Board update, used new installation of browser with clean cache.

Possible it same bug with next issue:
http://code.google.com/p/reviewboard/issues/detail?id=1800

I can not provide patches before and after update, its confidentional information.

I can provide error logs with removed confidentional info:

ERROR:root:Exception thrown for user [confidentional] at http://[confidentional]/api/json/reviewrequests/2279/diff/new/

3516L is not XML serializable
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/core/handlers/base.py", line 92, in get_respon
se
    response = callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/views/decorators/cache.py", line 45, in _wrapp
ed_view_func
    add_never_cache_headers(response)
  File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/utils/cache.py", line 119, in add_never_cache_
headers
    patch_response_headers(response, cache_timeout=-1)
  File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/utils/cache.py", line 108, in patch_response_h
eaders
    response['ETag'] = '"%s"' % md5_constructor(response.content).hexdigest()
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg/djblets/webapi/core.py", line 273, in _get_content
    content = adapter.encode(self.api_data, request=self.request)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg/djblets/webapi/core.py", line 119, in encode
    self.__encode(o, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg/djblets/webapi/core.py", line 136, in __encode
    self.__encode(value, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg/djblets/webapi/core.py", line 162, in __encode
    raise TypeError("%r is not XML serializable" % (o,))
TypeError: 3516L is not XML serializable

<ModPythonRequest
path:/api/json/reviewrequests/2279/diff/new/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'parent_diff_path': [u''], u'dummy': [u''], u'basedir': [u'[confidentional]']}>,
COOKIES:{'collapsediffs': 'True',
 'rbsessionid': '5a49c7c15879f3778032e122f42b66cb',
 's_cc': 'true',
 's_sq': '%5B%5BB%5D%5D'},
META:{'AUTH_TYPE': None,
 'CONTENT_LENGTH': '60278',
 'CONTENT_TYPE': 'multipart/form-data; boundary=---------------------------16216314501615',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_CHARSET': 'windows-1251,utf-8;q=0.7,*;q=0.7',
 'HTTP_ACCEPT_ENCODING': 'gzip,deflate',
 'HTTP_ACCEPT_LANGUAGE': 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_CONTENT_LENGTH': '60278',
 'HTTP_CONTENT_TYPE': 'multipart/form-data; boundary=---------------------------16216314501615',
 'HTTP_COOKIE': 'rbsessionid=5a49c7c15879f3778032e122f42b66cb; s_sq=%5B%5BB%5D%5D; s_cc=true; collapsediffs=True',
 'HTTP_HOST': '[confidentional]',
 'HTTP_KEEP_ALIVE': '115',
 'HTTP_REFERER': 'http://[confidentional]/r/2279/',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729)',
 'PATH_INFO': u'/api/json/reviewrequests/2279/diff/new/',
 'PATH_TRANSLATED': None,
 'QUERY_STRING': None,
 'REMOTE_ADDR': '[confidentional]',
 'REMOTE_HOST': None,
 'REMOTE_IDENT': None,
 'REMOTE_USER': None,
 'REQUEST_METHOD': 'POST',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '[confidentional]',
 'SERVER_PORT': 80,
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'mod_python'}>
chipx86
#1 chipx86
Likely due to a compatibility issue in Djblets. Try upgrading Djblets:

  $ sudo easy_install -U Djblets

Then restart Apache. If that doesn't work, we'll look into a quick fix.
  • +NeedInfo
#3 sskr*****@gmai***** (Google Code) (Is this you? Claim this profile.)
As I see, I use actual version of Djblets.

Output:

easy_install -U Djblets
Searching for Djblets
Reading http://pypi.python.org/simple/Djblets/
Reading http://www.review-board.org/wiki/Djblets
Reading http://downloads.review-board.org/releases/Djblets/0.5/
Reading http://downloads.review-board.org/releases/
Reading http://downloads.review-board.org/releases/Djblets/0.6/
Best match: Djblets 0.6.4
Processing Djblets-0.6.4-py2.4.egg
Djblets 0.6.4 is already the active version in easy-install.pth

Using /usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg
Reading http://downloads.review-board.org/mirror/
Processing dependencies for Djblets
Finished processing dependencies for Djblets
#4 sskr*****@gmai***** (Google Code) (Is this you? Claim this profile.)
If my previous comment was misunderstand, I explain more detailed.
I try to update Djblets with easy_install tool, and get message, that I have actual version of Djblets.
Also, after that I restart Apache and try to upload diff.
It doesn't work, I get same error.
chipx86
#5 chipx86
Okay, this looks like a regression caused by the newer Djblets. Try to uninstall your old Djblets (you'll need to remove /usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg) and then try installing 0.6.3:

   $ sudo easy_install -U Djblets=0.6.3

I'll look at putting out a patch to 1.0.9 that fixes compatibility.

Let me know if the above works.
#6 sskr*****@gmai***** (Google Code) (Is this you? Claim this profile.)
I remove Djblets 0.6.4 with command "rm -rf /usr/lib/python2.4/site-packages/Djblets-0.6.4-py2.4.egg", install Djblets 0.6.3 with command "easy_install -U Djblets==0.6.3" and restart Apache.

After that "Update Diff" button not work (no popup window with upload patch dialog). Also not work some other functions like "Add Screenshot" and broke layout on some pages (f.e. screens of dashboard in 0.6.3 and 0.6.4 in attach for comparison).

I think, workaround not work and I restore Djblets 0.6.4
#7 sskr*****@gmai***** (Google Code) (Is this you? Claim this profile.)
I check Djblets 0.6.3 in FF 3.6.9 and on new installations of Opera 10.62 and Chrome 6.0.472.62
#8 james******@gmai***** (Google Code) (Is this you? Claim this profile.)
If it's of any help we're seeing this same problem/exception and despite the error message the diff does seem to be uploaded and associated with the review.
chipx86
#9 chipx86
Oh, after re-installing Djblets, you'll need to perform a rb-site upgrade on your site, just like after a Review Board upgrade.
#10 sskr*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Looks like all works fine with solution from comment 9.
Thanks!
chipx86
#11 chipx86
Great :)

I'm going to use this bug to track the fix.
  • -NeedInfo
    +Confirmed
  • -Priority-Medium
    +Priority-Critical
    +Djblets
    +Milestone-Release1.0.x
  • +Review Board 1.0.9 is not compatible with Djblets 0.6.4.
chipx86
#12 chipx86
This isn't relevant anymore.
  • -Confirmed
    +WontFix