Public bug reported: If you have an existing entry in the identity_provider table, when updating from juno to kilo, it fails with the following error
OperationalError: (OperationalError) (1048, "Column 'remote_id' cannot be null") 'INSERT INTO idp_remote_ids (idp_id, remote_id) VALUES (%s, %s)' ('https://cern.ch/login', None) The migrate_repo goes from 2 to 6 and it failes in step 7. The issue is linked to a new field created on identity_provider table called 'remote_id' that it is created in step 3 and left empty. Then on step 7 it tries to read to insert into the idp_remote_ids that does not accept null values. 2015-07-28 15:04:00.247 18168 TRACE keystone Traceback (most recent call last): 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/bin/keystone-manage", line 44, in <module> 2015-07-28 15:04:00.247 18168 TRACE keystone cli.main(argv=sys.argv, config_files=config_files) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/cli.py", line 585, in main 2015-07-28 15:04:00.247 18168 TRACE keystone CONF.command.cmd_class.main() 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/cli.py", line 76, in main 2015-07-28 15:04:00.247 18168 TRACE keystone migration_helpers.sync_database_to_version(extension, version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/common/sql/migration_helpers.py", line 249, in sync_database_to_version 2015-07-28 15:04:00.247 18168 TRACE keystone _sync_extension_repo(extension, version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/common/sql/migration_helpers.py", line 219, in _sync_extension_repo 2015-07-28 15:04:00.247 18168 TRACE keystone init_version=init_version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/migration.py", line 79, in db_sync 2015-07-28 15:04:00.247 18168 TRACE keystone return versioning_api.upgrade(engine, repository, version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py", line 186, in upgrade 2015-07-28 15:04:00.247 18168 TRACE keystone return _migrate(url, repository, version, upgrade=True, err=err, **opts) 2015-07-28 15:04:00.247 18168 TRACE keystone File "<string>", line 2, in _migrate 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/util/__init__.py", line 160, in with_engine 2015-07-28 15:04:00.247 18168 TRACE keystone return f(*a, **kw) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py", line 366, in _migrate 2015-07-28 15:04:00.247 18168 TRACE keystone schema.runchange(ver, change, changeset.step) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/schema.py", line 93, in runchange 2015-07-28 15:04:00.247 18168 TRACE keystone change.run(self.engine, step) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/script/py.py", line 148, in run 2015-07-28 15:04:00.247 18168 TRACE keystone script_func(engine) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/contrib/federation/migrate_repo/versions/007_add_remote_id_table.py", line 39, in upgrade 2015-07-28 15:04:00.247 18168 TRACE keystone remote_id_table.insert(remote_idp_entry).execute() 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/base.py", line 386, in execute 2015-07-28 15:04:00.247 18168 TRACE keystone return e._execute_clauseelement(self, multiparams, params) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1759, in _execute_clauseelement 2015-07-28 15:04:00.247 18168 TRACE keystone return connection._execute_clauseelement(elem, multiparams, params) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement 2015-07-28 15:04:00.247 18168 TRACE keystone compiled_sql, distilled_params 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 958, in _execute_context 2015-07-28 15:04:00.247 18168 TRACE keystone context) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/compat/handle_error.py", line 261, in _handle_dbapi_exception 2015-07-28 15:04:00.247 18168 TRACE keystone e, statement, parameters, cursor, context) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1156, in _handle_dbapi_exception 2015-07-28 15:04:00.247 18168 TRACE keystone util.raise_from_cause(newraise, exc_info) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause 2015-07-28 15:04:00.247 18168 TRACE keystone reraise(type(exception), exception, tb=exc_tb) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context 2015-07-28 15:04:00.247 18168 TRACE keystone context) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 436, in do_execute 2015-07-28 15:04:00.247 18168 TRACE keystone cursor.execute(statement, parameters) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute 2015-07-28 15:04:00.247 18168 TRACE keystone self.errorhandler(self, exc, value) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler 2015-07-28 15:04:00.247 18168 TRACE keystone raise errorclass, errorvalue 2015-07-28 15:04:00.247 18168 TRACE keystone OperationalError: (OperationalError) (1048, "Column 'remote_id' cannot be null") 'INSERT INTO idp_remote_ids (idp_id, remote_id) VALUES (%s, %s)' ('https://cern.ch/login', None) ** Affects: keystone Importance: Undecided Assignee: Marek Denis (marek-denis) Status: New ** Tags: federation sql -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to Keystone. https://bugs.launchpad.net/bugs/1478961 Title: db sync on federation failed if there is existing data Status in Keystone: New Bug description: If you have an existing entry in the identity_provider table, when updating from juno to kilo, it fails with the following error OperationalError: (OperationalError) (1048, "Column 'remote_id' cannot be null") 'INSERT INTO idp_remote_ids (idp_id, remote_id) VALUES (%s, %s)' ('https://cern.ch/login', None) The migrate_repo goes from 2 to 6 and it failes in step 7. The issue is linked to a new field created on identity_provider table called 'remote_id' that it is created in step 3 and left empty. Then on step 7 it tries to read to insert into the idp_remote_ids that does not accept null values. 2015-07-28 15:04:00.247 18168 TRACE keystone Traceback (most recent call last): 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/bin/keystone-manage", line 44, in <module> 2015-07-28 15:04:00.247 18168 TRACE keystone cli.main(argv=sys.argv, config_files=config_files) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/cli.py", line 585, in main 2015-07-28 15:04:00.247 18168 TRACE keystone CONF.command.cmd_class.main() 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/cli.py", line 76, in main 2015-07-28 15:04:00.247 18168 TRACE keystone migration_helpers.sync_database_to_version(extension, version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/common/sql/migration_helpers.py", line 249, in sync_database_to_version 2015-07-28 15:04:00.247 18168 TRACE keystone _sync_extension_repo(extension, version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/common/sql/migration_helpers.py", line 219, in _sync_extension_repo 2015-07-28 15:04:00.247 18168 TRACE keystone init_version=init_version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/migration.py", line 79, in db_sync 2015-07-28 15:04:00.247 18168 TRACE keystone return versioning_api.upgrade(engine, repository, version) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py", line 186, in upgrade 2015-07-28 15:04:00.247 18168 TRACE keystone return _migrate(url, repository, version, upgrade=True, err=err, **opts) 2015-07-28 15:04:00.247 18168 TRACE keystone File "<string>", line 2, in _migrate 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/util/__init__.py", line 160, in with_engine 2015-07-28 15:04:00.247 18168 TRACE keystone return f(*a, **kw) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py", line 366, in _migrate 2015-07-28 15:04:00.247 18168 TRACE keystone schema.runchange(ver, change, changeset.step) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/schema.py", line 93, in runchange 2015-07-28 15:04:00.247 18168 TRACE keystone change.run(self.engine, step) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/migrate/versioning/script/py.py", line 148, in run 2015-07-28 15:04:00.247 18168 TRACE keystone script_func(engine) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/keystone/contrib/federation/migrate_repo/versions/007_add_remote_id_table.py", line 39, in upgrade 2015-07-28 15:04:00.247 18168 TRACE keystone remote_id_table.insert(remote_idp_entry).execute() 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/base.py", line 386, in execute 2015-07-28 15:04:00.247 18168 TRACE keystone return e._execute_clauseelement(self, multiparams, params) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1759, in _execute_clauseelement 2015-07-28 15:04:00.247 18168 TRACE keystone return connection._execute_clauseelement(elem, multiparams, params) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement 2015-07-28 15:04:00.247 18168 TRACE keystone compiled_sql, distilled_params 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 958, in _execute_context 2015-07-28 15:04:00.247 18168 TRACE keystone context) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/compat/handle_error.py", line 261, in _handle_dbapi_exception 2015-07-28 15:04:00.247 18168 TRACE keystone e, statement, parameters, cursor, context) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1156, in _handle_dbapi_exception 2015-07-28 15:04:00.247 18168 TRACE keystone util.raise_from_cause(newraise, exc_info) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause 2015-07-28 15:04:00.247 18168 TRACE keystone reraise(type(exception), exception, tb=exc_tb) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context 2015-07-28 15:04:00.247 18168 TRACE keystone context) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 436, in do_execute 2015-07-28 15:04:00.247 18168 TRACE keystone cursor.execute(statement, parameters) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute 2015-07-28 15:04:00.247 18168 TRACE keystone self.errorhandler(self, exc, value) 2015-07-28 15:04:00.247 18168 TRACE keystone File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler 2015-07-28 15:04:00.247 18168 TRACE keystone raise errorclass, errorvalue 2015-07-28 15:04:00.247 18168 TRACE keystone OperationalError: (OperationalError) (1048, "Column 'remote_id' cannot be null") 'INSERT INTO idp_remote_ids (idp_id, remote_id) VALUES (%s, %s)' ('https://cern.ch/login', None) To manage notifications about this bug go to: https://bugs.launchpad.net/keystone/+bug/1478961/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp