I've seen this. This is a behavioral quirk in MySQL. Basically, this is likely a longblob, but some versions of MySQL assume the incoming content should be Unicode text and does validation on that. The validation fails, and you get the warning you have above:
/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py:129: Warning: Invalid utf8 character string: 'AAF744' return self.cursor.execute(query, args) Another user hit this with MySQL 5.5. Upgrading to 5.6 solved this for him, but you're on 5.7, so I guess this wasn't "fixed." There is a proper fix that Django's put in place, based on the recommendations of the MySQL developers. However, we're not able to use that newer version of Django... Been meaning to see if we can monkey-patch the fix in. This is MySQL warning code 1300. You can see some discussion about this here: https://bugs.mysql.com/bug.php?id=79317 Now, if you don't enable DEBUG = True in settings_local.py, then this warning is harmless. So I suspect your Default Reviewer issue is a configuration issue. Can you show me what your Default Reviewer configuration looks like? Christian -- Christian Hammond President/CEO of Beanbag <https://www.beanbaginc.com/> Makers of Review Board <https://www.reviewboard.org/> On Fri, Jan 13, 2017 at 11:59 AM, David Trowbridge <[email protected]> wrote: > Something is super weird with your database schema. The "binary" field of > that table should be a longblob, not text (and therefore shouldn't care at > all about encodings one way or another). Can you pull out the schema and > send it here? > > -David > > On Fri, Jan 13, 2017 at 9:08 AM Shooter Gravatar < > [email protected]> wrote: > >> Another update. >> >> I completely remove ReviewBoard 2.5.7 from my system and downloaded again >> 2.5.6.1 with easy_install. >> Run the installation again. >> Same configuration as before. >> I can now create a review request from the UI by browsing the commits on >> my repo, and the default reviewer rule is applied (the group is assigned to >> the request i just created). >> But i still have the utf8 error on the database. >> >> I now have another problem : i cannot acces the >> /reviewboard/admin/settings/general/ page on the Admin dashboard. >> >> >> Traceback (most recent call last): >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", >> line 112, in get_response >> >> response = wrapped_callback(request, *callback_args, >> **callback_kwargs) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py", >> line 99, in _wrapped_view >> >> response = view_func(request, *args, **kwargs) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/views/decorators.py", >> line 17, in _checklogin >> >> return view_func(request, *args, **kwargs) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5. >> 6.1-py2.7.egg/reviewboard/admin/views.py", line 138, in site_settings >> >> 'root_path': settings.SITE_ROOT + "admin/db/" >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py", >> line 99, in _wrapped_view >> >> response = view_func(request, *args, **kwargs) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/views/decorators.py", >> line 17, in _checklogin >> >> return view_func(request, *args, **kwargs) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/djblets/siteconfig/views.py", >> line 63, in site_settings >> >> return render_to_response(template_name, RequestContext(request, >> context)) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py", >> line 29, in render_to_response >> >> return HttpResponse(loader.render_to_string(*args, **kwargs), >> **httpresponse_kwargs) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", >> line 164, in render_to_string >> >> return t.render(Context(dictionary)) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 140, in render >> >> return self._render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 134, in _render >> >> return self.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", >> line 123, in render >> >> return compiled_parent._render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 134, in _render >> >> return self.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", >> line 123, in render >> >> return compiled_parent._render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 134, in _render >> >> return self.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", >> line 123, in render >> >> return compiled_parent._render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 134, in _render >> >> return self.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", >> line 123, in render >> >> return compiled_parent._render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 134, in _render >> >> return self.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", >> line 62, in render >> >> result = block.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File >> "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py", >> line 62, in render >> >> result = block.nodelist.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 840, in render >> >> bit = self.render_node(node, context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 854, in render_node >> >> return node.render(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 891, in render >> >> output = self.filter_expression.resolve(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 585, in resolve >> >> obj = self.var.resolve(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 735, in resolve >> >> value = self._resolve_lookup(context) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", >> line 789, in _resolve_lookup >> >> current = current() >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py", >> line 249, in non_field_errors >> >> return self.errors.get(NON_FIELD_ERRORS, self.error_class()) >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py", >> line 121, in errors >> >> self.full_clean() >> >> >> >> File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5. >> 6.1-py2.7.egg/reviewboard/admin/forms.py", line 263, in full_clean >> >> cache_type = self['cache_type'].data or self['cache_type'].initial >> >> >> >> AttributeError: 'BoundField' object has no attribute 'initial' >> >> >> -- >> 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 >> "reviewboard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > -- > 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 > "reviewboard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- 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 "reviewboard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
