Hello, I am hoping someone may be able to assist with an issue I am having. We have been running a very old version of Reviewboard (RB 2.5.6.1, Cent 6.5, Py 2.6, MySQL) and I have begun moving that old instance to a new server (Cent 7, Py 2.7, RB 3.0.7, MySQL)
I have managed to install RB 2.5.6.1 on the Cent 7 server, import the old database, upgrade the server to 3.0.7 and everything seems to be working except for one thing (and its a pretty big exception...) I can't view review requests on the server now. Every time that I attempt to, I get a 500 error. It seems to be related to a unicode decryption failure, but I can't figure out what is not being stored as UTF-8. I even ran an alter table convert to character set utf8 on all of the reviewboard tables but that did not seem to affect anything. I am attempting to go from http://reviewboard.site.com/r/?sort=-time_added,submitter to http://reviewboard.site.com/r/20617/ Here is the debug message from the page when the error occurs: UnicodeDecodeError at /r/20607/ 'utf8' codec can't decode byte 0x88 in position 0: invalid start byte Request Method: GET Request URL: http://reviewboard.site.com/r/20617/ Django Version: 1.6.11 Exception Type: UnicodeDecodeError Exception Value: 'utf8' codec can't decode byte 0x88 in position 0: invalid start byte Exception Location: /usr/lib64/python2.7/encodings/utf_8.py in decode, line 16 Python Executable: /usr/bin/python Python Version: 2.7.5 Python Path: ['/var/www/reviewboard.site.com/conf', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/Whoosh-2.7.4-py2.7.egg', '/usr/lib/python2.7/site-packages/recaptcha_client-1.0.6-py2.7.egg', '/usr/lib/python2.7/site-packages/pytz-2018.4-py2.7.egg', '/usr/lib/python2.7/site-packages/python_memcached-1.59-py2.7.egg', '/usr/lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg', '/usr/lib/python2.7/site-packages/Pygments-2.2.0-py2.7.egg', '/usr/lib/python2.7/site-packages/pycrypto-2.6.1-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/paramiko-2.4.1-py2.7.egg', '/usr/lib/python2.7/site-packages/mimeparse-0.1.3-py2.7.egg', '/usr/lib/python2.7/site-packages/docutils-0.14-py2.7.egg', '/usr/lib/python2.7/site-packages/django_multiselectfield-0.1.8-py2.7.egg', '/usr/lib/python2.7/site-packages/django_haystack-2.4.1-py2.7.egg', '/usr/lib/python2.7/site-packages/django_evolution-0.7.8-py2.7.egg', '/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7.egg', '/usr/lib/python2.7/site-packages/pyasn1-0.4.3-py2.7.egg', '/usr/lib/python2.7/site-packages/PyNaCl-1.2.1-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/cryptography-2.2.2-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/bcrypt-3.1.4-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/publicsuffix-1.1.0-py2.7.egg', '/usr/lib/python2.7/site-packages/feedparser-5.2.1-py2.7.egg', '/usr/lib/python2.7/site-packages/pillowfight-0.3-py2.7.egg', '/usr/lib/python2.7/site-packages/cffi-1.11.5-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/idna-2.7-py2.7.egg', '/usr/lib/python2.7/site-packages/enum34-1.1.6-py2.7.egg', '/usr/lib/python2.7/site-packages/asn1crypto-0.24.0-py2.7.egg', '/usr/lib/python2.7/site-packages/futures-3.2.0-py2.7.egg', '/usr/lib/python2.7/site-packages/Pillow-5.1.0-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/pycparser-2.18-py2.7.egg', '/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7-py2.7.egg', '/usr/lib/python2.7/site-packages/rbintegrations-1.0-py2.7.egg', '/usr/lib/python2.7/site-packages/pymdown_extensions-3.5-py2.7.egg', '/usr/lib/python2.7/site-packages/Markdown-2.6.11-py2.7.egg', '/usr/lib/python2.7/site-packages/django_oauth_toolkit-0.9.0-py2.7.egg', '/usr/lib/python2.7/site-packages/django_cors_headers-1.1.0-py2.7.egg', '/usr/lib/python2.7/site-packages/Djblets-1.0.6-py2.7.egg', '/usr/lib/python2.7/site-packages/asana-0.7.1-py2.7.egg', '/usr/lib/python2.7/site-packages/PyYAML-3.12-py2.7-linux-x86_64.egg', '/usr/lib/python2.7/site-packages/oauthlib-1.0.1-py2.7.egg', '/usr/lib/python2.7/site-packages/django_braces-1.13.0-py2.7.egg', '/usr/lib/python2.7/site-packages/django_pipeline-1.6.14-py2.7.egg'] Server time: Thu, 21 Jun 2018 22:25:01 +0000 Unicode error hint The string that could not be encoded/decoded was: ���xZ� Here is the traceback: *[Review Board] ERROR (EXTERNAL IP): Internal Server Error: /r/20617/* Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/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-1.6.11-py2.7. egg/django/views/generic/base.py", line 69, in view return self.dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Djblets-1.0.6-py2.7. egg/djblets/views/generic/base.py", line 46, in dispatch request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/utils/decorators.py", line 29, in _wrapper return bound_func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/accounts/decorators.py", line 29, in _check return login_required(view_func)(*args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/contrib/auth/decorators.py", line 22, in _wrapped_view return view_func(request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/utils/decorators.py", line 25, in bound_func return func(self, *args2, **kwargs2) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/accounts/mixins.py", line 45, in dispatch *args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/utils/decorators.py", line 29, in _wrapper return bound_func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/site/decorators.py", line 36, in _check return view_func(request, local_site=local_site, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/utils/decorators.py", line 25, in bound_func return func(self, *args2, **kwargs2) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/site/mixins.py", line 53, in dispatch request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Djblets-1.0.6-py2.7. egg/djblets/views/generic/base.py", line 91, in dispatch super(PrePostDispatchViewMixin, self).dispatch(*args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/utils/decorators.py", line 29, in _wrapper return bound_func(*args, **kwargs) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/accounts/decorators.py", line 82, in decorated return view_func(request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/utils/decorators.py", line 25, in bound_func return func(self, *args2, **kwargs2) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/accounts/mixins.py", line 102, in dispatch *args, **kwargs) File "/usr/lib/python2.7/site-packages/Djblets-1.0.6-py2.7. egg/djblets/views/generic/etag.py", line 50, in dispatch **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/views/generic/base.py", line 87, in dispatch return handler(request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/Django-1.6.11-py2.7. egg/django/views/generic/base.py", line 154, in get context = self.get_context_data(**kwargs) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/reviews/views.py", line 758, in get_context_data context.update(make_review_request_context(request, review_request)) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/reviews/context.py", line 105, in make_review_request_context upload_diff_form = UploadDiffForm(review_request, request=request) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/reviews/forms.py", line 129, in __init__ data, *args, **kwargs) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/diffviewer/forms.py", line 41, in __init__ if self.repository.get_scmtool().diffs_use_absolute_paths: File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/scmtools/models.py", line 244, in get_scmtool return self.scmtool_class(self) File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/scmtools/svn/__init__.py", line 69, in __init__ credentials = repository.get_credentials() File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/scmtools/models.py", line 326, in get_credentials password = self.password File "/usr/lib/python2.7/site-packages/ReviewBoard-3.0.7- py2.7.egg/reviewboard/scmtools/models.py", line 220, in _get_password password = decrypt_password(password).decode('utf-8') File "/usr/lib64/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0x88 in position 0: invalid start byte So I can gather that its trying to decrypt the password and its not being read as a utf8 string, but I'm not sure where repository.get_credentials() is being sourced from. Does anyone have any idea of what I can look into or things I should be checking to ensure that everything is encoded properly? My /etc/my.cnf contains [client] default-character-set=utf8 [mysqld] character-set-server=utf8 and my /etc/httpd/conf/httpd.conf contains AddDefaultCharset UTF-8 Does anyone know what I can look for to try and see what is encoded incorrectly? Thanks Jordan -- Supercharge your Review Board with Power Pack: https://www.reviewboard.org/powerpack/ Want us to host Review Board for you? Check out RBCommons: https://rbcommons.com/ Happy user? Let us know! https://www.reviewboard.org/users/ --- You received this message because you are subscribed to the Google Groups "Review Board Community" 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.