cinder-manage db sync fails for db2

Bug #1404303 reported by Jun Xie
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
High
Jun Xie

Bug Description

+ cinder-manage db sync
/usr/lib/python2.7/site-packages/oslo/concurrency/__init__.py:25: DeprecationWarning: The oslo namespace package is deprecated. Please use oslo_concurrency instead.
  stacklevel=1,
2014-12-19 02:33:23.270 26580 INFO migrate.versioning.api [-] 0 -> 1...
2014-12-19 02:33:54.571 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:33:54.572 26580 INFO migrate.versioning.api [-] 1 -> 2...
2014-12-19 02:34:03.845 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:03.845 26580 INFO migrate.versioning.api [-] 2 -> 3...
2014-12-19 02:34:07.562 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:07.562 26580 INFO migrate.versioning.api [-] 3 -> 4...
2014-12-19 02:34:17.120 26580 INFO 004_volume_type_to_uuid [-] Created foreign key sql141219023354510
2014-12-19 02:34:17.132 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:17.132 26580 INFO migrate.versioning.api [-] 4 -> 5...
2014-12-19 02:34:18.598 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:18.598 26580 INFO migrate.versioning.api [-] 5 -> 6...
2014-12-19 02:34:19.689 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:19.689 26580 INFO migrate.versioning.api [-] 6 -> 7...
2014-12-19 02:34:19.822 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:19.822 26580 INFO migrate.versioning.api [-] 7 -> 8...
2014-12-19 02:34:21.314 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:21.315 26580 INFO migrate.versioning.api [-] 8 -> 9...
2014-12-19 02:34:23.050 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:23.051 26580 INFO migrate.versioning.api [-] 9 -> 10...
2014-12-19 02:34:24.601 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:24.601 26580 INFO migrate.versioning.api [-] 10 -> 11...
2014-12-19 02:34:25.810 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:25.811 26580 INFO migrate.versioning.api [-] 11 -> 12...
2014-12-19 02:34:27.525 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:27.526 26580 INFO migrate.versioning.api [-] 12 -> 13...
2014-12-19 02:34:28.650 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:28.651 26580 INFO migrate.versioning.api [-] 13 -> 14...
2014-12-19 02:34:29.810 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:29.810 26580 INFO migrate.versioning.api [-] 14 -> 15...
2014-12-19 02:34:30.108 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:30.109 26580 INFO migrate.versioning.api [-] 15 -> 16...
2014-12-19 02:34:30.625 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:30.625 26580 INFO migrate.versioning.api [-] 16 -> 17...
2014-12-19 02:34:35.300 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:35.300 26580 INFO migrate.versioning.api [-] 17 -> 18...
2014-12-19 02:34:38.568 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:38.569 26580 INFO migrate.versioning.api [-] 18 -> 19...
2014-12-19 02:34:39.518 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:39.518 26580 INFO migrate.versioning.api [-] 19 -> 20...
2014-12-19 02:34:40.734 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:40.735 26580 INFO migrate.versioning.api [-] 20 -> 21...
2014-12-19 02:34:40.824 26580 INFO 021_add_default_quota_class [-] Added default quota class data into the DB.
2014-12-19 02:34:40.835 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:40.835 26580 INFO migrate.versioning.api [-] 21 -> 22...
2014-12-19 02:34:41.701 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:41.701 26580 INFO migrate.versioning.api [-] 22 -> 23...
2014-12-19 02:34:41.944 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:41.945 26580 INFO migrate.versioning.api [-] 23 -> 24...
2014-12-19 02:34:44.943 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:44.943 26580 INFO migrate.versioning.api [-] 24 -> 25...
2014-12-19 02:34:49.886 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:49.886 26580 INFO migrate.versioning.api [-] 25 -> 26...
2014-12-19 02:34:49.908 26580 INFO 026_add_consistencygroup_quota_class [-] Added default consistencygroups quota class data into the DB.
2014-12-19 02:34:49.919 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:49.919 26580 INFO migrate.versioning.api [-] 26 -> 27...
2014-12-19 02:34:49.977 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:49.978 26580 INFO migrate.versioning.api [-] 27 -> 28...
2014-12-19 02:34:49.986 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:49.986 26580 INFO migrate.versioning.api [-] 28 -> 29...
2014-12-19 02:34:49.994 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:49.994 26580 INFO migrate.versioning.api [-] 29 -> 30...
2014-12-19 02:34:50.002 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:50.002 26580 INFO migrate.versioning.api [-] 30 -> 31...
2014-12-19 02:34:50.011 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:50.011 26580 INFO migrate.versioning.api [-] 31 -> 32...
2014-12-19 02:34:52.486 26580 INFO migrate.versioning.api [-] done
2014-12-19 02:34:52.486 26580 INFO migrate.versioning.api [-] 32 -> 33...
/usr/lib/python2.7/site-packages/migrate/changeset/constraint.py:85: SAWarning: Table 'encryption' specifies columns 'volume_type_id' as primary_key=True, not matching locally specified columns 'encryption_id'; setting the current primary key columns to 'encryption_id'. This warning may become an exception in a future release
  self._set_parent(table)
2014-12-19 02:34:53.771 26580 ERROR oslo.db.sqlalchemy.exc_filters [-] DBAPIError exception wrapped from (ProgrammingError) ibm_db_dbi::ProgrammingError: Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0542N The column named "ENCRYPTION_ID" cannot be a column of a primary key or unique key constraint because it can contain null values. SQLSTATE=42831 SQLCODE=-542 'ALTER TABLE "encryption" ADD CONSTRAINT encryption_pkey PRIMARY KEY (encryption_id)' ()
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters Traceback (most recent call last):
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters context)
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/site-packages/ibm_db_sa/ibm_db.py", line 106, in do_execute
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters cursor.execute(statement, parameters)
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/ibm_db_dbi.py", line 1335, in execute
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters self._execute_helper(parameters)
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib64/python2.7/site-packages/ibm_db_dbi.py", line 1247, in _execute_helper
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters raise self.messages[len(self.messages) - 1]
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters ProgrammingError: ibm_db_dbi::ProgrammingError: Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0542N The column named "ENCRYPTION_ID" cannot be a column of a primary key or unique key constraint because it can contain null values. SQLSTATE=42831 SQLCODE=-542
2014-12-19 02:34:53.771 26580 TRACE oslo.db.sqlalchemy.exc_filters
2014-12-19 02:34:53.785 26580 CRITICAL cinder [-] DBError: (ProgrammingError) ibm_db_dbi::ProgrammingError: Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0542N The column named "ENCRYPTION_ID" cannot be a column of a primary key or unique key constraint because it can contain null values. SQLSTATE=42831 SQLCODE=-542 'ALTER TABLE "encryption" ADD CONSTRAINT encryption_pkey PRIMARY KEY (encryption_id)' ()
2014-12-19 02:34:53.785 26580 TRACE cinder Traceback (most recent call last):
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/bin/cinder-manage", line 10, in <module>
2014-12-19 02:34:53.785 26580 TRACE cinder sys.exit(main())
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/cinder/cmd/manage.py", line 543, in main
2014-12-19 02:34:53.785 26580 TRACE cinder fn(*fn_args)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/cinder/cmd/manage.py", line 222, in sync
2014-12-19 02:34:53.785 26580 TRACE cinder return db_migration.db_sync(version)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/cinder/db/migration.py", line 61, in db_sync
2014-12-19 02:34:53.785 26580 TRACE cinder init_version=init_version)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/oslo/db/sqlalchemy/migration.py", line 79, in db_sync
2014-12-19 02:34:53.785 26580 TRACE cinder return versioning_api.upgrade(engine, repository, version)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py", line 186, in upgrade
2014-12-19 02:34:53.785 26580 TRACE cinder return _migrate(url, repository, version, upgrade=True, err=err, **opts)
2014-12-19 02:34:53.785 26580 TRACE cinder File "<string>", line 2, in _migrate
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/versioning/util/__init__.py", line 160, in with_engine
2014-12-19 02:34:53.785 26580 TRACE cinder return f(*a, **kw)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py", line 366, in _migrate
2014-12-19 02:34:53.785 26580 TRACE cinder schema.runchange(ver, change, changeset.step)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/versioning/schema.py", line 93, in runchange
2014-12-19 02:34:53.785 26580 TRACE cinder change.run(self.engine, step)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/versioning/script/py.py", line 148, in run
2014-12-19 02:34:53.785 26580 TRACE cinder script_func(engine)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/cinder/db/sqlalchemy/migrate_repo/versions/033_add_encryption_unique_key.py", line 58, in upgrade
2014-12-19 02:34:53.785 26580 TRACE cinder pkey.create()
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/changeset/constraint.py", line 44, in create
2014-12-19 02:34:53.785 26580 TRACE cinder self.__do_imports('constraintgenerator', *a, **kw)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/changeset/constraint.py", line 32, in __do_imports
2014-12-19 02:34:53.785 26580 TRACE cinder run_single_visitor(engine, visitorcallable, self, *a, **kw)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/changeset/databases/visitor.py", line 85, in run_single_visitor
2014-12-19 02:34:53.785 26580 TRACE cinder fn(element, **kwargs)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/changeset/ansisql.py", line 285, in visit_migrate_primary_key_constraint
2014-12-19 02:34:53.785 26580 TRACE cinder self._visit_constraint(*p, **k)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/changeset/databases/ibmdb2.py", line 281, in _visit_constraint
2014-12-19 02:34:53.785 26580 TRACE cinder self.execute()
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/migrate/changeset/ansisql.py", line 44, in execute
2014-12-19 02:34:53.785 26580 TRACE cinder return self.connection.execute(self.buffer.getvalue())
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 721, in execute
2014-12-19 02:34:53.785 26580 TRACE cinder return self._execute_text(object, multiparams, params)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 870, in _execute_text
2014-12-19 02:34:53.785 26580 TRACE cinder statement, parameters
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 958, in _execute_context
2014-12-19 02:34:53.785 26580 TRACE cinder context)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1155, in _handle_dbapi_exception
2014-12-19 02:34:53.785 26580 TRACE cinder util.raise_from_cause(newraise, exc_info)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
2014-12-19 02:34:53.785 26580 TRACE cinder reraise(type(exception), exception, tb=exc_tb)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
2014-12-19 02:34:53.785 26580 TRACE cinder context)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib/python2.7/site-packages/ibm_db_sa/ibm_db.py", line 106, in do_execute
2014-12-19 02:34:53.785 26580 TRACE cinder cursor.execute(statement, parameters)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/ibm_db_dbi.py", line 1335, in execute
2014-12-19 02:34:53.785 26580 TRACE cinder self._execute_helper(parameters)
2014-12-19 02:34:53.785 26580 TRACE cinder File "/usr/lib64/python2.7/site-packages/ibm_db_dbi.py", line 1247, in _execute_helper
2014-12-19 02:34:53.785 26580 TRACE cinder raise self.messages[len(self.messages) - 1]
2014-12-19 02:34:53.785 26580 TRACE cinder DBError: (ProgrammingError) ibm_db_dbi::ProgrammingError: Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0542N The column named "ENCRYPTION_ID" cannot be a column of a primary key or unique key constraint because it can contain null values. SQLSTATE=42831 SQLCODE=-542 'ALTER TABLE "encryption" ADD CONSTRAINT encryption_pkey PRIMARY KEY (encryption_id)' ()
2014-12-19 02:34:53.785 26580 TRACE cinder
+ '[' 1 -ne 0 ']'
+ echo 'Cinder database setup/migration failed.'
Cinder database setup/migration failed.

Jun Xie (junxiebj)
Changed in cinder:
assignee: nobody → Jun Xie (junxiebj)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

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

Changed in cinder:
status: New → In Progress
Jay Bryant (jsbryant)
Changed in cinder:
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/143129
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=bb1c2b28f8bf4a100dbd8252b558154018dd4c3b
Submitter: Jenkins
Branch: master

commit bb1c2b28f8bf4a100dbd8252b558154018dd4c3b
Author: jun xie <email address hidden>
Date: Sat Dec 20 00:24:22 2014 +0800

    encryption_id needs to be non-nullable

    DB2 10.5 doesn't support primary key constraints over
    nullable columns, so we have to make this column
    non-nullable.

    Change-Id: I3f6ded20cd8cf1902347f58f91c05446739b48f5
    Closes-Bug: #1404303

Changed in cinder:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in cinder:
milestone: none → kilo-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in cinder:
milestone: kilo-2 → 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.