[Bug 1760918] Re: [SRU] Fixing UUID coerce function for unicode non uuid form

Seyeong Kim seyeong.kim at canonical.com
Thu May 10 09:40:00 UTC 2018


for pike

tested TEST CASE

dpkg -l | grep python-oslo.versionedobjects

ii  python-oslo.versionedobjects     1.26.0-0ubuntu2~cloud0
all          deals with DB schema versions and code expectations -
Python 2.x

** Tags removed: verification-pike-needed
** Tags added: verification-pike-done

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1760918

Title:
  [SRU] Fixing UUID coerce function for unicode non uuid form

Status in Ubuntu Cloud Archive:
  Fix Committed
Status in Ubuntu Cloud Archive mitaka series:
  Triaged
Status in Ubuntu Cloud Archive ocata series:
  Fix Committed
Status in Ubuntu Cloud Archive pike series:
  Fix Committed
Status in Ubuntu Cloud Archive queens series:
  Fix Committed
Status in oslo.versionedobjects:
  Fix Released
Status in python-oslo.versionedobjects package in Ubuntu:
  Fix Released
Status in python-oslo.versionedobjects source package in Xenial:
  Triaged
Status in python-oslo.versionedobjects source package in Artful:
  Fix Committed
Status in python-oslo.versionedobjects source package in Bionic:
  Fix Released

Bug description:
  [Impact]

  In Kilo, with ldap integrated, user_id can have non uuid format ( e.g. Gāo )
  Then after upgrading kilo to mitaka ( in trusty env )

  Gāo user can't create cinder volume with unicode error.

  Affected Xenial, UCA Mitaka ( this is modified after i re-testing all
  )

  Please refer to error code like below [1]

  [Test Case]

  1. deploy openstack env
  2. source novarc ( as admin )
  3. keystone user-create --name test
  4. openstack user set --password-prompt test
  4. log into keystone node and install mysql-client
  5. connect to mysql with keystone user
  6. do below query
  - set foreign_key_checks = 0;
  - update local_user set user_id='Gāo' where user_id='UUID';
  - update user set id='Gāo' where id='UUID';
  - set foreign_key_checks = 1;
  7. keystone user-role-add --user test --tenant admin --role Admin
  8. source novarc ( as test )
  9. cinder create --name test 1

  got unicode error on cinder-api node logs

  [Regression Potential]
  This patch make code handles unicode non uuid form user id. Basically this has little risk. but cinder-api service need to be restarted.

  [Others]

  [1] ###########

  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/taskflow/types/failure.py", line 343, in reraise
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault six.reraise(*self._exc_info)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/taskflow/engines/action_engine/executor.py", line 82, in _execute_task
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault result = task.execute(**arguments)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/cinder/volume/flows/api/create_volume.py", line 527, in execute
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault volume = objects.Volume(context=context, **volume_properties)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/cinder/objects/volume.py", line 180, in __init__
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault super(Volume, self).__init__(*args, **kwargs)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 304, in __init__
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault setattr(self, key, kwargs[key])
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", line 72, in setter
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault field_value = field.coerce(self, name, value)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 192, in coerce
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault return self._type.coerce(obj, attr, value)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/oslo_versionedobjects/fields.py", line 325, in coerce
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault "for further details" % value, FutureWarning)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/logging/__init__.py", line 1709, in _showwarning
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault s = warnings.formatwarning(message, category, filename, lineno, line)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault File "/usr/lib/python2.7/warnings.py", line 38, in formatwarning
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault s = "%s:%s: %s: %s\n" % (filename, lineno, category.__name__, message)
  2018-03-14 10:58:56.932 2198 ERROR cinder.api.middleware.fault UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 9: ordinal not in range(128)

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1760918/+subscriptions



More information about the Ubuntu-sponsors mailing list