Comment #5 on issue 2720 by [email protected]: ERROR (EXTERNAL IP): Internal Server Error: /dashboard/
http://code.google.com/p/reviewboard/issues/detail?id=2720

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

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
You received this message because you are subscribed to the Google Groups 
"reviewboard-issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/reviewboard-issues?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to