1134: post-review failure causes reviewboard site to be unavailable

kelvin.*******@gmai***** (Google Code) (Is this you? Claim this profile.)
Aug. 26, 2009
What version are you running?
reviewboard 1.0RC2

What's the URL of the page containing the problem?
Virtually anything on the user side, even the main dashboard http://reviews/dashboard/
The admin portal is not affected.


What steps will reproduce the problem?
1. Trigger issue 676 (by using post-review to submit a diff that is greater than mysql's 
max_allowed_packet value) 
2. browse to dashboard http://reviews/dashboard/?view=outgoing

What is the expected output? What do you see instead?
I expect to see the dashboard.  Instead, I get a 500 error (when not in debug mode) and in debug 
mode, I get the attached data in the browser, indicating that a date is not correctly set in the DB. 
(0000-00-00 or other invalid date)


What operating system are you using? What browser?
rb server: CentOS 5.2, Python 2.5.4, Perforce 2007.2.
client: Kubuntu - 2.6.27-14-generic #1 SMP Wed Apr 15 19:29:46 UTC 2009 x86_64 GNU/Linux


Please provide any additional information below.

Due to the similarity in error message, it is possible that this problem is related to this django 
ticket.
http://code.djangoproject.com/ticket/2871

The only way to get out of this issue is to go into the admin portal and delete the offending 
review.
Environment:
Request Method: GET
Request URL: http://reviews.ca.kindsight.net/dashboard/
Django Version: 1.0.2 final
Python Version: 2.5.4
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.siteconfig',
 'djblets.util',
 'djblets.webapi',
 'reviewboard.accounts',
 'reviewboard.admin',
 'reviewboard.changedescs',
 'reviewboard.diffviewer',
 'reviewboard.iphone',
 'reviewboard.reports',
 'reviewboard.reviews',
 'reviewboard.scmtools',
 '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.midd
david
#1 david
For easy reference:


Traceback:
File
"/usr/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/core/handlers/base.py"
in get_response
86.                 response = callback(request, *callback_args, **callback_kwargs)
File
"/usr/local/lib/python2.5/site-packages/Djblets-0.5rc1-py2.5.egg/djblets/auth/util.py" in
_checklogin
45.             return view_func(request, *args, **kwargs)
File
"/usr/local/lib/python2.5/site-packages/ReviewBoard-1.0rc2-py2.5.egg/reviewboard/accounts/decorators.py"
in _check_valid_prefs
43.                 return view_func(request, *args, **kwargs)
File
"/usr/local/lib/python2.5/site-packages/ReviewBoard-1.0rc2-py2.5.egg/reviewboard/reviews/views.py"
in dashboard
309.     return grid.render_to_response(template_name)
File
"/usr/local/lib/python2.5/site-packages/Djblets-0.5rc1-py2.5.egg/djblets/datagrid/grids.py"
in render_to_response
556.         self.load_state()
File
"/usr/local/lib/python2.5/site-packages/Djblets-0.5rc1-py2.5.egg/djblets/datagrid/grids.py"
in load_state
452.         self.precompute_objects()
File
"/usr/local/lib/python2.5/site-packages/Djblets-0.5rc1-py2.5.egg/djblets/datagrid/grids.py"
in precompute_objects
509.         for obj in self.page.object_list:
File
"/usr/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/db/models/query.py"
in _result_iter
185.                 self._fill_cache()
File
"/usr/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/db/models/query.py"
in _fill_cache
618.                     self._result_cache.append(self._iter.next())
File
"/usr/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/db/models/query.py"
in iterator
282.                 setattr(obj, k, row[i])
File
"/usr/local/lib/python2.5/site-packages/ReviewBoard-1.0rc2-py2.5.egg/reviewboard/reviews/models.py"
in <lambda>
240.         lambda self, value: self.__set_last_activity_timestamp(value))
File
"/usr/local/lib/python2.5/site-packages/ReviewBoard-1.0rc2-py2.5.egg/reviewboard/reviews/models.py"
in __set_last_activity_timestamp
482.             self._last_activity_timestamp = typecast_timestamp(value)
File
"/usr/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/db/backends/util.py"
in typecast_timestamp
88.         int(times[0]), int(times[1]), int(seconds), int(float('.'+microseconds) *
1000000))

Exception Type: ValueError at /dashboard/
Exception Value: year is out of range
  • +Confirmed
david
#2 david
This should be fixed in the latest version. We're no longer using typecast_timestamp
  • -Confirmed
    +Fixed