Error in migration 066_fixup_service_name_value.py

Bug #1441164 reported by Viktor Serhieiev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Identity (keystone)
Fix Released
Medium
Viktor Serhieiev

Bug Description

Migration script 066_fixup_service_name_value.py select all data from `service` table and call jsonutils.loads to `extra` column value. This column was created in migration 044 as nullable, so it may be a situation, when this script tries to call jsonutils.loads(None). In this case, migration will fail with the following traceback

  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/api.py", line 186, in upgrade
    return _migrate(url, repository, version, upgrade=True, err=err, **opts)
  File "<string>", line 2, in _migrate
  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/util/__init__.py", line 160, in with_engine
    return f(*a, **kw)
  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/api.py", line 366, in _migrate
    schema.runchange(ver, change, changeset.step)
  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/schema.py", line 93, in runchange
    change.run(self.engine, step)
  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/script/py.py", line 148, in run
    script_func(engine)
  File "/home/vsergeev/sandbox/keystone/keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py", line 25, in upgrade
    extra_dict = jsonutils.loads(service.extra)
  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/oslo_serialization/jsonutils.py", line 215, in loads
    return json.loads(encodeutils.safe_decode(s, encoding), **kwargs)
  File "/home/vsergeev/sandbox/keystone/.tox/py27/local/lib/python2.7/site-packages/oslo_utils/encodeutils.py", line 33, in safe_decode
    raise TypeError("%s can't be decoded" % type(text))
TypeError: <type 'NoneType'> can't be decoded

Tags: db
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (master)

Fix proposed to branch: master
Review: https://review.openstack.org/171204

Changed in keystone:
assignee: nobody → Victor Sergeyev (vsergeyev)
status: New → In Progress
Revision history for this message
Viktor Serhieiev (vsergeyev) wrote :

See straightforward fix - https://review.openstack.org/#/c/171204

Changed in keystone:
importance: Undecided → Low
importance: Low → Medium
milestone: none → kilo-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (master)

Reviewed: https://review.openstack.org/171204
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=4c879c9bc7ec307dd158af4dd4b0f41e0e2d0531
Submitter: Jenkins
Branch: master

commit 4c879c9bc7ec307dd158af4dd4b0f41e0e2d0531
Author: Victor Sergeyev <email address hidden>
Date: Tue Apr 7 16:50:19 2015 +0300

    Handle NULL value for service.extra in migration 066

    Added a check for service.extra column before jsonutils.loads() call

    Change-Id: I5a652101d986672ba6094f0b3e107e2710154c68
    Closes-Bug: #1441164

Changed in keystone:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in keystone:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in keystone:
milestone: kilo-rc1 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.