hue.wikimedia.org throws an exception when trying to log in with a non-ASCII username.
Steps to reproduce:
- Visit https://hue.wikimedia.org/accounts/login/
- Type or copy-paste "ń" into the username field
- Click "Sign in"
The result is the exception below:
Traceback (most recent call last): File "/usr/lib/hue/desktop/core/src/desktop/lib/wsgiserver.py", line 1215, in communicate req.respond() File "/usr/lib/hue/desktop/core/src/desktop/lib/wsgiserver.py", line 576, in respond self._respond() File "/usr/lib/hue/desktop/core/src/desktop/lib/wsgiserver.py", line 588, in _respond response = self.wsgi_app(self.environ, self.start_response) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/wsgi.py", line 206, in __call__ response = self.get_response(request) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/base.py", line 194, in get_response response = self.handle_uncaught_exception(request, resolver, sys.exc_info()) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/base.py", line 236, in handle_uncaught_exception return callback(request, **param_dict) File "/usr/lib/hue/desktop/core/src/desktop/views.py", line 417, in serve_500_error return render("500.mako", request, {'traceback': traceback.extract_tb(exc_info[2])}) File "/usr/lib/hue/desktop/core/src/desktop/lib/django_util.py", line 230, in render **kwargs) File "/usr/lib/hue/desktop/core/src/desktop/lib/django_util.py", line 148, in _render_to_response return django_mako.render_to_response(template, *args, **kwargs) File "/usr/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 125, in render_to_response return HttpResponse(render_to_string(template_name, data_dictionary), **kwargs) File "/usr/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 114, in render_to_string_normal result = template.render(**data_dict) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/template.py", line 443, in render return runtime._render(self, self.callable_, args, data) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 786, in _render **_kwargs_for_callable(callable_, data)) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 818, in _render_context _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 844, in _exec_template callable_(context, *args, **kwargs) File "/tmp/tmpzV54Gn/desktop/500.mako.py", line 120, in render_body __M_writer(unicode( commonfooter(request, messages) )) File "/usr/lib/hue/desktop/core/src/desktop/views.py", line 556, in commonfooter 'collect_usage': collect_usage(), File "/usr/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 114, in render_to_string_normal result = template.render(**data_dict) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/template.py", line 443, in render return runtime._render(self, self.callable_, args, data) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 786, in _render **_kwargs_for_callable(callable_, data)) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 818, in _render_context _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 844, in _exec_template callable_(context, *args, **kwargs) File "/tmp/tmpzV54Gn/desktop/common_footer.mako.py", line 54, in render_body __M_writer(unicode( smart_unicode(login_modal(request).content) )) File "/usr/lib/hue/desktop/core/src/desktop/views.py", line 531, in login_modal return desktop.auth.views.dt_login(request, True) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/django_axes-1.5.0-py2.7.egg/axes/decorators.py", line 292, in decorated_login if is_already_locked(request): File "/usr/lib/hue/build/env/lib/python2.7/site-packages/django_axes-1.5.0-py2.7.egg/axes/decorators.py", line 365, in is_already_locked attempts = get_user_attempts(request) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/django_axes-1.5.0-py2.7.egg/axes/decorators.py", line 247, in get_user_attempts attempts = _get_user_attempts(request) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/django_axes-1.5.0-py2.7.egg/axes/decorators.py", line 234, in _get_user_attempts if not attempts: File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/models/query.py", line 100, in __nonzero__ self._fetch_all() File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/models/query.py", line 857, in _fetch_all self._result_cache = list(self.iterator()) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/models/query.py", line 220, in iterator for row in compiler.results_iter(): File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/models/sql/compiler.py", line 713, in results_iter for rows in self.execute_sql(MULTI): File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/models/sql/compiler.py", line 786, in execute_sql cursor.execute(sql, params) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/backends/util.py", line 53, in execute return self.cursor.execute(sql, params) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/utils.py", line 99, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/backends/util.py", line 53, in execute return self.cursor.execute(sql, params) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/backends/mysql/base.py", line 124, in execute return self.cursor.execute(query, args) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/cursors.py", line 205, in execute self.errorhandler(self, exc, value) File "/usr/lib/hue/build/env/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue OperationalError: (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")