What version are you running?
ReviewBoard 2.0.6 and Note To Reviewers 1.0
What's the URL of the page containing the problem?
https://server/r/45/
What steps will reproduce the problem?
1. I had a review open, posted with rbt and filled with description on the web site.
2. I published the review.
3. I clicked on code diff to report an issue.
4. I published the review.
5. I entered additional explanation in 'Note to reviewers' field.
6. I published the review.
7. The mail of change was sent.
What is the expected output? What do you see instead?
It should present updated review. Instead it generates a HTTP 500 error. It is impossible to open the review again since it always fails with HTTP 500.
Disabling 'Note to Reviewers' extension brought the review back to life.
Please note that I had used this extension before without such problems.
What operating system are you using? What browser?
I run Firefox 31 on Windows 7. Review Board server is hosted on a RedHatEnterpriseLinux 5.9 x86_64.
Please provide any additional information below.
When HTTP 500 is thrown, an exception is logged:
2014-09-02 15:28:54,825 - ERROR - - Exception thrown for user user at https://server:8081/r/45/
'NoneType' object has no attribute 'strip'
Traceback (most recent call last):
File "/path/to/reviewboard/lib/python2.7/site-packages/Django-1.6.6-py2.7.egg/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/path/to/reviewboard/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/accounts/decorators.py", line 21, in _check
return login_required(view_func)(*args, **kwargs)
File "/path/to/reviewboard/lib/python2.7/site-packages/Django-1.6.6-py2.7.egg/django/contrib/auth/decorators.py", line 22, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/path/to/reviewboard/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/site/decorators.py", line 35, in _check
return view_func(request, local_site=local_site, *args, **kwargs)
File "/path/to/reviewboard/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/reviews/views.py", line 660, in review_detail
changedesc.fields_changed[field_id])
File "/path/to/reviewboard/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/reviews/fields.py", line 159, in get_change_entry_sections_h
tml
'rendered_html': mark_safe(self.render_change_entry_html(info)),
File "/path/to/reviewboard/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/reviews/fields.py", line 484, in render_change_entry_html
old_value = render_markdown(old_value)
File "/path/to/reviewboard/lib/python2.7/site-packages/ReviewBoard-2.0.6-py2.7.egg/reviewboard/reviews/markdown_utils.py", line 209, in render_markdown
return markdown(text, **MARKDOWN_KWARGS)
File "/path/to/reviewboard/lib/python2.7/site-packages/Markdown-2.4.1-py2.7.egg/markdown/__init__.py", line 411, in markdown
return md.convert(text)
File "/path/to/reviewboard/lib/python2.7/site-packages/Markdown-2.4.1-py2.7.egg/markdown/__init__.py", line 275, in convert
if not source.strip():
AttributeError: 'NoneType' object has no attribute 'strip'