First of all, thanks for a great review tool. We have been using ReviewBoard for over a year now and it has become an invaluable tool for us.

We recently got a new server and I took the opportunity to update our ReviewBoard installation to 1.5.2 (from a really ancient 1.0alpha version)

On the new server, reviewboard is integrated with Apache and is much faster than the old version. However, I am having a problem with reviews with a large number of files so reviewboard splits the diffs accross multiple pages.

Just viewing the diffs on each of the pages is fine, but if I add some review comments, so that there is an unpublished review and then try changing to a different page ReviewBoard seems to hang and "top" shows httpd at 100% CPU on the server. Trying another operation in this state causes a 500 error from the server, in the logs when that happens it shows that the database is locked (trace below). Restarting Apache seems to be the only way to clear the problem.

If I publish the review before changing pages then there is no problem. The problem only seems to occur if I try to change pages with an unpublished review open.

Has anyone else seen this problem or have any suggestions?

Reviewboard is installed on Linux (using easy_install) with python 2.4 and using an sqlite database.

Traceback from the logs when accessing reviewboard while "waiting" for the diff pages to change:

Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/core/handlers/base.py", line 100, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/views/decorators/cache.py", line 78, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.4/site-packages/ReviewBoard-1.5.2-py2.4.egg/reviewboard/webapi/decorators.py", line 61, in _view
    response = view_func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/Djblets-0.6.7-py2.4.egg/djblets/webapi/decorators.py", line 88, in _checklogin
    return view_func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/views/decorators/http.py", line 37, in inner
    return func(request, *args, **kwargs)
File "/usr/lib/python2.4/site-packages/ReviewBoard-1.5.2-py2.4.egg/reviewboard/webapi/json.py", line 931, in review_draft_save
File "/usr/lib/python2.4/site-packages/ReviewBoard-1.5.2-py2.4.egg/reviewboard/reviews/models.py", line 1145, in publish
File "/usr/lib/python2.4/site-packages/ReviewBoard-1.5.2-py2.4.egg/reviewboard/reviews/models.py", line 1132, in save
    super(Review, self).save()
File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/db/models/base.py", line 456, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/db/models/base.py", line 556, in save_base
File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/db/transaction.py", line 175, in commit_unless_managed
File "/usr/lib/python2.4/site-packages/Django-1.2.4-py2.4.egg/django/db/backends/__init__.py", line 32, in _commit
    return self.connection.commit()
OperationalError: database is locked

David Dibben

Want to help the Review Board project? Donate today at 
Happy user? Let us know at http://www.reviewboard.org/users/
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to