Re: Crash while viewing review request

2015-09-09 Thread David Trowbridge
Looks like a fine fix. Can you post this on reviews.reviewboard.org?

Thanks!
-David
On Wed, Sep 9, 2015 at 10:33 AM Alexey Neyman 
wrote:

> FWIW, converting an iterator to list explicitly seems to help. Changed
> this line:
>
> return json.dumps(review_ui.serialize_comments(
> file_attachment.get_comments()))
>
> to this
>
> return json.dumps(list(review_ui.serialize_comments(
> file_attachment.get_comments(
>
> no crash observed. Don't know if it is the right fix, though.
>
> Regards,
> Alexey.
>
>
> On Friday, September 4, 2015 at 10:23:45 AM UTC-7, Alexey Neyman wrote:
>>
>> Hi all,
>>
>> We have a "Something broke (Error 500)" while trying to access one of the
>> review requests. I am pretty sure it was displayed fine previously at some
>> point, but at some point stopped working. I suspect the 2.0.19 update is
>> the culprit, as this last call in the stack trace
>> (file_attachment_comments) has changed substantially from 2.0.18.
>>
>> The stack trace is:
>>
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/core/handlers/base.py",
>>  line 112, in get_response
>> response = wrapped_callback(request, *callback_args, **callback_kwargs)
>>   File 
>> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/accounts/decorators.py",
>>  line 21, in _check
>> return login_required(view_func)(*args, **kwargs)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/contrib/auth/decorators.py",
>>  line 22, in _wrapped_view
>> return view_func(request, *args, **kwargs)
>>   File 
>> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/site/decorators.py",
>>  line 35, in _check
>> return view_func(request, local_site=local_site, *args, **kwargs)
>>   File 
>> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/reviews/views.py",
>>  line 721, in review_detail
>> RequestContext(request, context_data))
>>   File 
>> "*/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/shortcuts/*__init__.py",
>>  line 29, in render_to_response
>> return HttpResponse(loader.render_to_string(*args, **kwargs), 
>> **httpresponse_kwargs)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader.py",
>>  line 164, in render_to_string
>> return t.render(Context(dictionary))
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 140, in render
>> return self._render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 134, in _render
>> return self.nodelist.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 840, in render
>> bit = self.render_node(node, context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 854, in render_node
>> return node.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>>  line 123, in render
>> return compiled_parent._render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 134, in _render
>> return self.nodelist.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 840, in render
>> bit = self.render_node(node, context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 854, in render_node
>> return node.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>>  line 123, in render
>> return compiled_parent._render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 134, in _render
>> return self.nodelist.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 840, in render
>> bit = self.render_node(node, context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 854, in render_node
>> return node.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>>  line 62, in render
>> result = block.nodelist.render(context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 840, in render
>> bit = self.render_node(node, context)
>>   File 
>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>  line 854, in render_node
>> return node.render(context)
>>   File 
>> 

Re: Crash while viewing review request

2015-09-09 Thread Alexey Neyman
FWIW, converting an iterator to list explicitly seems to help. Changed this 
line:

return json.dumps(review_ui.serialize_comments(
file_attachment.get_comments()))

to this

return json.dumps(list(review_ui.serialize_comments(
file_attachment.get_comments(

no crash observed. Don't know if it is the right fix, though.

Regards,
Alexey.

On Friday, September 4, 2015 at 10:23:45 AM UTC-7, Alexey Neyman wrote:
>
> Hi all,
>
> We have a "Something broke (Error 500)" while trying to access one of the 
> review requests. I am pretty sure it was displayed fine previously at some 
> point, but at some point stopped working. I suspect the 2.0.19 update is 
> the culprit, as this last call in the stack trace 
> (file_attachment_comments) has changed substantially from 2.0.18.
>
> The stack trace is:
>
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/core/handlers/base.py",
>  line 112, in get_response
> response = wrapped_callback(request, *callback_args, **callback_kwargs)
>   File 
> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/accounts/decorators.py",
>  line 21, in _check
> return login_required(view_func)(*args, **kwargs)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/contrib/auth/decorators.py",
>  line 22, in _wrapped_view
> return view_func(request, *args, **kwargs)
>   File 
> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/site/decorators.py",
>  line 35, in _check
> return view_func(request, local_site=local_site, *args, **kwargs)
>   File 
> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/reviews/views.py",
>  line 721, in review_detail
> RequestContext(request, context_data))
>   File 
> "*/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/shortcuts/*__init__.py",
>  line 29, in render_to_response
> return HttpResponse(loader.render_to_string(*args, **kwargs), 
> **httpresponse_kwargs)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader.py",
>  line 164, in render_to_string
> return t.render(Context(dictionary))
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 140, in render
> return self._render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 134, in _render
> return self.nodelist.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 840, in render
> bit = self.render_node(node, context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 854, in render_node
> return node.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>  line 123, in render
> return compiled_parent._render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 134, in _render
> return self.nodelist.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 840, in render
> bit = self.render_node(node, context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 854, in render_node
> return node.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>  line 123, in render
> return compiled_parent._render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 134, in _render
> return self.nodelist.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 840, in render
> bit = self.render_node(node, context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 854, in render_node
> return node.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>  line 62, in render
> result = block.nodelist.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 840, in render
> bit = self.render_node(node, context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>  line 854, in render_node
> return node.render(context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>  line 155, in render
> return self.render_template(self.template, context)
>   File 
> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>  line 137, in 

Re: Crash while viewing review request

2015-09-09 Thread Christian Hammond
This is actually already fixed for 2.0.20, unless I missed something big.
Planning a release in the next few days.

Christian

-- 
Christian Hammond - chip...@chipx86.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com

On Wed, Sep 9, 2015 at 11:58 AM, David Trowbridge 
wrote:

> Looks like a fine fix. Can you post this on reviews.reviewboard.org?
>
> Thanks!
> -David
>
> On Wed, Sep 9, 2015 at 10:33 AM Alexey Neyman 
> wrote:
>
>> FWIW, converting an iterator to list explicitly seems to help. Changed
>> this line:
>>
>> return json.dumps(review_ui.serialize_comments(
>> file_attachment.get_comments()))
>>
>> to this
>>
>> return json.dumps(list(review_ui.serialize_comments(
>> file_attachment.get_comments(
>>
>> no crash observed. Don't know if it is the right fix, though.
>>
>> Regards,
>> Alexey.
>>
>>
>> On Friday, September 4, 2015 at 10:23:45 AM UTC-7, Alexey Neyman wrote:
>>>
>>> Hi all,
>>>
>>> We have a "Something broke (Error 500)" while trying to access one of
>>> the review requests. I am pretty sure it was displayed fine previously at
>>> some point, but at some point stopped working. I suspect the 2.0.19 update
>>> is the culprit, as this last call in the stack trace
>>> (file_attachment_comments) has changed substantially from 2.0.18.
>>>
>>> The stack trace is:
>>>
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/core/handlers/base.py",
>>>  line 112, in get_response
>>> response = wrapped_callback(request, *callback_args, **callback_kwargs)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/accounts/decorators.py",
>>>  line 21, in _check
>>> return login_required(view_func)(*args, **kwargs)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/contrib/auth/decorators.py",
>>>  line 22, in _wrapped_view
>>> return view_func(request, *args, **kwargs)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/site/decorators.py",
>>>  line 35, in _check
>>> return view_func(request, local_site=local_site, *args, **kwargs)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.19-py2.6.egg/reviewboard/reviews/views.py",
>>>  line 721, in review_detail
>>> RequestContext(request, context_data))
>>>   File 
>>> "*/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/shortcuts/*__init__.py",
>>>  line 29, in render_to_response
>>> return HttpResponse(loader.render_to_string(*args, **kwargs), 
>>> **httpresponse_kwargs)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader.py",
>>>  line 164, in render_to_string
>>> return t.render(Context(dictionary))
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 140, in render
>>> return self._render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 134, in _render
>>> return self.nodelist.render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 840, in render
>>> bit = self.render_node(node, context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 854, in render_node
>>> return node.render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>>>  line 123, in render
>>> return compiled_parent._render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 134, in _render
>>> return self.nodelist.render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 840, in render
>>> bit = self.render_node(node, context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 854, in render_node
>>> return node.render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/loader_tags.py",
>>>  line 123, in render
>>> return compiled_parent._render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 134, in _render
>>> return self.nodelist.render(context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 840, in render
>>> bit = self.render_node(node, context)
>>>   File 
>>> "/usr/lib/python2.6/site-packages/Django-1.6.11.1-py2.6.egg/django/template/base.py",
>>>  line 854, in render_node
>>> return node.render(context)
>>>   File 
>>>