2720: ERROR (EXTERNAL IP): Internal Server Error: /dashboard/
- Fixed
- Review Board
| thom.******@gmai***** (Google Code) (Is this you? Claim this profile.) | |
| Feb. 4, 2014 |
What version are you running? Relavant versions from$ pip freeze Django==1.3.2 Djblets==0.6.22 ReviewBoard==1.6.11 Python 2.6.6 Running via WSGI in Apache 2.2.16 on debian. What's the URL of the page containing the problem? /dashboard/ What steps will reproduce the problem? It just happens intermittently for users that have the dashboard open, about once a day out of approximately 3000 GET requests. Exception output: Traceback (most recent call last): File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/djblets/auth/util.py", line 46, in _checklogin return view_func(request, *args, **kwargs) File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/reviewboard/accounts/decorators.py", line 52, in _check_valid_prefs return view_func(request, *args, **kwargs) File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/reviewboard/reviews/views.py", line 807, in dashboard return grid.render_to_response(template_name) File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/djblets/datagrid/grids.py", line 746, in render_to_response self.load_state() File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/djblets/datagrid/grids.py", line 578, in load_state self.precompute_objects() File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/djblets/datagrid/grids.py", line 683, in precompute_objects for obj in object_list if obj is not None File "/usr/local/pythonenv/reviewboard/lib/python2.6/site-packages/djblets/datagrid/grids.py", line 284, in render_cell mark_safe(self.datagrid.cell_template_obj.render(ctx)) AttributeError: 'NoneType' object has no attribute 'render'
I'm seeing this with the same RB version, a few times a week. Appears to be the same as issue 2223.
It exists in 1.6.13
I've also been watching this for a while. It already occurred long before 1.6.13.
Still in reviewboard == 1.7.6, djblets == 0.7.11.
More details: This looks like a thread safety issue.
When constructing a new instance of DataGrid(), the column attributes aren't new Coulmn() instances.
https://github.com/djblets/djblets/blob/release-0.7.11/djblets/datagrid/grids.py#L442
Is going to break any other instances of the DataGrid. Because they all share the same Column instances.
>>> from StringIO import StringIO
>>> from django.core.handlers.wsgi import WSGIRequest
>>> from django.contrib.auth.models import *
>>> from django.contrib.auth.models import User
>>> from reviewboard.reviews.datagrids import DashboardDataGrid
>>> def fake_get(path='/', user=None):
... req = WSGIRequest({
... 'REQUEST_METHOD': 'GET',
... 'PATH_INFO': path,
... 'wsgi.input': StringIO()})
... from django.contrib.auth.models import AnonymousUser
... req.user = AnonymousUser() if user is None else user
... return req
...
>>> ddg1 = DashboardDataGrid(fake_get(user=User.objects.get(username=username)))
>>> ddg1.load_state()
>>> ddg1.columns[0].datagrid == ddg1
True
>>> ddg2 = DashboardDataGrid(fake_get(user=User.objects.get(username=username)))
>>> ddg2.load_state()
>>> ddg2.columns[0].datagrid == ddg2
True
>>> ddg1.columns[0].datagrid == ddg1
False
This is probably related to the apache deployment being MPM Worker instead of MPM Prefork. See https://groups.google.com/forum/#!topic/reviewboard/kS23n4m5aNw for details on similar strangeness that occurs with extensions; I believe it to be a similar problem.
Hi ,
we are using review board 1.7.6.
recently we are facing internal server error 500.
below is the snapshot of the error log.
Internal Server Error: /dashboard/
result = block.nodelist.render(context)
File "/usr/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/template/base.py", line 823, in render
bit = self.render_node(node, context)
File "/usr/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/template/base.py", line 837, in render_node
return node.render(context)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.11-py2.6.egg/djblets/util/decorators.py", line 186, in render
return self.tag_func(context, self.nodelist, *args)
File "/usr/lib/python2.6/site-packages/Djblets-0.7.11-py2.6.egg/djblets/util/templatetags/djblets_deco.py", line 44, in box
'content': nodelist.render(context)
File "/usr/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/template/base.py", line 823, in render
bit = self.render_node(node, context)
File "/usr/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/template/base.py", line 837, in render_node
return node.render(context)
File "/usr/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/template/base.py", line 1178, in render
_dict = func(*resolved_args, **resolved_kwargs)
File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.6-py2.6.egg/reviewboard/reviews/templatetags/reviewtags.py/usr/lib/python2.6/site-packages/ReviewBoard-1.7.6-py2.6.egg/reviewboard/reviews/templatetags/reviewtags.py", line 365, in dashboard_entry
"Invalid view type '%s' passed to 'dashboard_entry' tag." % view
TemplateSyntaxError: Invalid view type 'starred' passed to 'dashboard_entry' tag
can you please help me here to fix this issue?
Thanks.