Project

General

Profile

Bug #44118

Non-ASCII characters in ObjectGateway users' display_name break dashboard

Added by Oliver Freyermuth 10 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
dashboard/rgw
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature:

Description

Creating an Object Gateway user with purely ASCII characters, but a non-ASCII character in the "Full Name" field via Dashboard correctly creates the user,
and "ruciogw-admin user info" shows the correct display_name with correct encoding, but afterwards, the "User" page in the Dashboard fails to load.
mgr logs contain:

2020-02-13 13:25:14.592 7ff360fe9700  0 mgr[dashboard] ['{"status": "500 Internal Server Error", "version": "3.2.2", "detail": "The server encountered an unexpected condition which prevented it from fulfilling the request.", "traceback": "Traceback (most recent call last):\\n  File \\"/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py\\", line 656, in respond\\n    response.body = self.handler()\\n  File \\"/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py\\", line 188, in __call__\\n    self.body = self.oldhandler(*args, **kwargs)\\n  File \\"/usr/lib/python2.7/site-packages/cherrypy/_cptools.py\\", line 221, in wrap\\n    return self.newhandler(innerfunc, *args, **kwargs)\\n  File \\"/usr/share/ceph/mgr/dashboard/services/exception.py\\", line 88, in dashboard_exception_handler\\n    return handler(*args, **kwargs)\\n  File \\"/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py\\", line 34, in __call__\\n    return self.callable(*self.args, **self.kwargs)\\n  File \\"/usr/share/ceph/mgr/dashboard/controllers/__init__.py\\", line 661, in inner\\n    ret = func(*args, **kwargs)\\n  File \\"/usr/share/ceph/mgr/dashboard/controllers/__init__.py\\", line 854, in wrapper\\n    return func(*vpath, **params)\\n  File \\"/usr/share/ceph/mgr/dashboard/controllers/rgw.py\\", line 241, in create\\n    result = self.proxy(\'PUT\', \'user\', params)\\n  File \\"/usr/share/ceph/mgr/dashboard/controllers/rgw.py\\", line 98, in proxy\\n    result = instance.proxy(method, path, params, None)\\n  File \\"/usr/share/ceph/mgr/dashboard/services/rgw_client.py\\", line 394, in proxy\\n    return self._proxy_request(self.admin_path, path, method, params, data)\\n  File \\"/usr/share/ceph/mgr/dashboard/rest_client.py\\", line 507, in func_wrapper\\n    **kwargs)\\n  File \\"/usr/share/ceph/mgr/dashboard/services/rgw_client.py\\", line 389, in _proxy_request\\n    method=method, params=params, data=data, raw_content=True)\\n  File \\"/usr/share/ceph/mgr/dashboard/rest_client.py\\", line 313, in __call__\\n    data, raw_content)\\n  File \\"/usr/share/ceph/mgr/dashboard/rest_client.py\\", line 406, in do_request\\n    resp.status_code, resp.text)\\n  File \\"/usr/lib64/python2.7/logging/__init__.py\\", line 1137, in debug\\n    self._log(DEBUG, msg, args, **kwargs)\\n  File \\"/usr/lib64/python2.7/logging/__init__.py\\", line 1268, in _log\\n    self.handle(record)\\n  File \\"/usr/lib64/python2.7/logging/__init__.py\\", line 1278, in handle\\n    self.callHandlers(record)\\n  File \\"/usr/lib64/python2.7/logging/__init__.py\\", line 1318, in callHandlers\\n    hdlr.handle(record)\\n  File \\"/usr/lib64/python2.7/logging/__init__.py\\", line 749, in handle\\n    self.emit(record)\\n  File \\"/usr/share/ceph/mgr/mgr_module.py\\", line 65, in emit\\n    self._module._ceph_log(ceph_level, self.format(record))\\nUnicodeEncodeError: \'ascii\' codec can\'t encode characters in position 109-110: ordinal not in range(128)\\n"}']

Deleting the user manually resolves the issue.

Likely related to #42651.

Also available in: Atom PDF