Looks like the reviews/search.html template is expecting a User and getting a 
string, I'm not sure why this is broken now and wasn't before. Would you mind 
filing a bug?

Christian

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

-----Original Message-----
From: David Carson <dccar...@gmail.com>
Reply: reviewboard@googlegroups.com <reviewboard@googlegroups.com>>
Date: October 2, 2014 at 2:36:16 PM
To: reviewboard@googlegroups.com <reviewboard@googlegroups.com>>
Subject:  certain search string causes "Error 500" -- user.get_full_name() error

> I'm setting up a new RB deployment -- version 2.0.8 on CentOS 7.
>  
> We have 20 or so test review requests that were created by the beta
> testers. When I search for most strings, I get the expected list of links.
> However, when I search for a certain string ("test"), I get a "Something
> broke! (Error 500)" error.
>  
> Since the error is the following (snippet of full traceback):
>  
> File
> "/usr/lib/python2.7/site-packages/djblets/util/templatetags/djblets_utils.py" 
>  
> , line 203, in user_displayname
> return user.get_full_name() or user.username
> AttributeError: 'str' object has no attribute 'get_full_name'
>  
>  
>  
> I thought, "Oh, I know what this is." Some of the new users (NIS) are
> being created without a last name, because some of our NIS entries have
> "last, first" in the fullname field. So, I fixed those users as the admin,
> by adding the correct first and last name.
>  
> Alas, that did not fix it. I'm still getting the same error. Is there
> something else that I need to do to 'flush' this change out of a buffer or
> something??
>  
> Here is the full traceback:
>  
> Traceback (most recent call last):
>  
> File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py",
> line 112, in get_response
> response = wrapped_callback(request, *callback_args, **callback_kwargs)
>  
> File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line
> 29, in _wrapper
> return bound_func(*args, **kwargs)
>  
> File
> "/usr/lib/python2.7/site-packages/reviewboard/accounts/decorators.py", line  
> 23, in _check
> return view_func(*args, **kwargs)
>  
> File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line
> 25, in bound_func
> return func(self, *args2, **kwargs2)
>  
> File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line
> 29, in _wrapper
> return bound_func(*args, **kwargs)
>  
> File "/usr/lib/python2.7/site-packages/reviewboard/site/decorators.py",
> line 35, in _check
> return view_func(request, local_site=local_site, *args, **kwargs)
>  
> File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line
> 25, in bound_func
> return func(self, *args2, **kwargs2)
>  
> File "/usr/lib/python2.7/site-packages/reviewboard/reviews/views.py",
> line 1475, in __call__
> return super(ReviewRequestSearchView, self).__call__(request)
>  
> File "/usr/lib/python2.7/site-packages/haystack/views.py", line 50, in
> __call__
> return self.create_response()
>  
> File "/usr/lib/python2.7/site-packages/reviewboard/reviews/views.py",
> line 1520, in create_response
> context_instance=self.context_class(self.request))
>  
> File "/usr/lib/python2.7/site-packages/django/shortcuts/__init__.py",
> line 29, in render_to_response
> return HttpResponse(loader.render_to_string(*args, **kwargs),
> **httpresponse_kwargs)
>  
> File "/usr/lib/python2.7/site-packages/django/template/loader.py", line
> 169, in render_to_string
> return t.render(context_instance)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 140, in render
> return self._render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 134, in _render
> return self.nodelist.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 840, in render
> bit = self.render_node(node, context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 854, in render_node
> return node.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py",
> line 123, in render
> return compiled_parent._render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 134, in _render
> return self.nodelist.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 840, in render
> bit = self.render_node(node, context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 854, in render_node
> return node.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py",
> line 62, in render
> result = block.nodelist.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 840, in render
> bit = self.render_node(node, context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 854, in render_node
> return node.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/loader_tags.py",
> line 62, in render
> result = block.nodelist.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 840, in render
> bit = self.render_node(node, context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 854, in render_node
> return node.render(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/defaulttags.py",
> line 203, in render
> nodelist.append(node.render(context))
>  
> File "/usr/lib/python2.7/site-packages/django/templatetags/i18n.py", line  
> 127, in render
> tmp_context[var] = val.resolve(context)
>  
> File "/usr/lib/python2.7/site-packages/django/template/base.py", line
> 613, in resolve
> new_obj = func(obj, *arg_vals)
>  
> * File
> "/usr/lib/python2.7/site-packages/djblets/util/templatetags/djblets_utils.py",
>   
> line 203, in user_displayname*
> * return user.get_full_name() or user.username*
>  
> *AttributeError: 'str' object has no attribute 'get_full_name'*
>  
>  
> > path:/r/search/,
> GET:,
> POST:,
> COOKIES:{'collapsediffs': 'True',
> 'csrftoken': 'Et9WvlrHMs8PVcvrEUBGiMSju4jL6yz9',
> 'rbsessionid': 'mbj0vgf66eviveznsx1ibsmzr05uenoa'},
> META:{'CONTEXT_DOCUMENT_ROOT': '/var/www/ReviewBoard/htdocs',
> 'CONTEXT_PREFIX': '',
> 'DOCUMENT_ROOT': '/var/www/ReviewBoard/htdocs',
> 'GATEWAY_INTERFACE': 'CGI/1.1',
> 'HTTP_ACCEPT':
> 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
>  
> 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
> 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
> 'HTTP_CONNECTION': 'keep-alive',
> 'HTTP_COOKIE': 'rbsessionid=mbj0vgf66eviveznsx1ibsmzr05uenoa;
> collapsediffs=True; csrftoken=Et9WvlrHMs8PVcvrEUBGiMSju4jL6yz9',
> 'HTTP_HOST': 'reviewboard',
> 'HTTP_REFERER': 'http://reviewboard/r/',
> 'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4)
> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36',
> u'LOCAL_SITE': None,
> 'PATH_INFO': u'/r/search/',
> 'PATH_TRANSLATED': '/var/www/ReviewBoard/htdocs/reviewboard.wsgi/r/search/',  
> 'QUERY_STRING': 'q=test',
> 'REMOTE_ADDR': '10.6.105.68',
> 'REMOTE_PORT': '64297',
> 'REQUEST_METHOD': 'GET',
> 'REQUEST_SCHEME': 'http',
> 'REQUEST_URI': '/r/search/?q=test',
> 'SCRIPT_FILENAME': '/var/www/ReviewBoard/htdocs/reviewboard.wsgi',
> 'SCRIPT_NAME': u'',
> 'SERVER_ADDR': '10.68.9.34',
> 'SERVER_ADMIN': 'build...@mycompany.com',
> 'SERVER_NAME': 'reviewboard',
> 'SERVER_PORT': '80',
> 'SERVER_PROTOCOL': 'HTTP/1.1',
> 'SERVER_SIGNATURE': '',
> 'SERVER_SOFTWARE': 'Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips
> mod_fcgid/2.3.9 mod_wsgi/3.4 Python/2.7.5',
> 'UNIQUE_ID': 'VC3ABUR8wqq0n1A1GiE3qQAAAAw',
> u'USERNAME': u'dcarson',
> u'USER_EMAIL': u'dcar...@mycompany.com',
> 'mod_wsgi.application_group': 'pinehurst.mycompany.com|',
> 'mod_wsgi.callable_object': 'application',
> 'mod_wsgi.enable_sendfile': '0',
> 'mod_wsgi.handler_script': '',
> 'mod_wsgi.input_chunked': '0',
> 'mod_wsgi.listener_host': '',
> 'mod_wsgi.listener_port': '80',
> 'mod_wsgi.process_group': '',
> 'mod_wsgi.queue_start': '1412284421095998',
> 'mod_wsgi.request_handler': 'wsgi-script',
> 'mod_wsgi.script_reloading': '1',
> 'mod_wsgi.version': (3, 4),
> 'wsgi.errors': ,
> 'wsgi.file_wrapper': > object at 0x7f03cd630300>,
> 'wsgi.input': ,
> 'wsgi.multiprocess': True,
> 'wsgi.multithread': False,
> 'wsgi.run_once': False,
> 'wsgi.url_scheme': 'http',
> 'wsgi.version': (1, 0)}>
>  
>  
>  
> --
> Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
> ---
> Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
> ---
> Happy user? Let us know at http://www.reviewboard.org/users/
> ---
> You received this message because you are subscribed to the Google Groups 
> "reviewboard"  
> group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to reviewboard+unsubscr...@googlegroups.com.  
> For more options, visit https://groups.google.com/d/optout.
>  

-- 
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to