[Openstack] Grizzly -> Havana nova upgrade failure: Cannot drop index 'instance_uuid'

Blair Zajac blair at orcaware.com
Sun Oct 27 22:08:22 UTC 2013


mysql> show create table instance_info_caches \G
*************************** 1. row ***************************
        Table: instance_info_caches
Create Table: CREATE TABLE `instance_info_caches` (
   `created_at` datetime DEFAULT NULL,
   `updated_at` datetime DEFAULT NULL,
   `deleted_at` datetime DEFAULT NULL,
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `network_info` mediumtext,
   `instance_uuid` varchar(36) NOT NULL,
   `deleted` int(11) DEFAULT NULL,
   PRIMARY KEY (`id`),
   UNIQUE KEY `instance_uuid` (`instance_uuid`),
   CONSTRAINT `instance_info_caches_ibfk_1` FOREIGN KEY (`instance_uuid`) 
REFERENCES `instances` (`uuid`)
) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

Regards,
Blair

On 10/27/13 3:05 PM, Michael Still wrote:
> Can you run this against your nova mysql database and let us know the result?
>
> show create table instance_info_caches \G
>
> Thanks,
> Michael
>
> On Sun, Oct 27, 2013 at 7:58 PM, Blair Zajac <blair at orcaware.com> wrote:
>> Hello,
>>
>> I was running Ubuntu 13.04 and upgraded tonight to 13.10.  I was running the
>> Ubuntu Precise 1:2013.1.3-0ubuntu1.1 on 13.04 and am now on 13.10's provided
>> 1:2013.2~rc2-0ubuntu1.
>>
>> After getting the box up, migrating the nova database failed with the below
>> error.  I am using MySQL.
>>
>> Suggestions on how to fix this?
>>
>> Thanks,
>> Blair
>>
>>
>> # nova-manage -v db sync
>> 2013-10-27 01:47:03.615 24457 INFO migrate.versioning.api [-] 161 -> 162...
>> 2013-10-27 01:47:03.673 24457 INFO migrate.versioning.api [-] done
>> ...
>> ...
>> 2013-10-27 01:47:16.373 24457 INFO migrate.versioning.api [-] 184 -> 185...
>> Command failed, please check log for more info
>> 2013-10-27 01:47:17.835 24457 CRITICAL nova [-] (OperationalError) (1553,
>> "Cannot drop index 'instance_uuid': needed in a foreign key constraint")
>> 'ALTER TABLE instance_info_caches DROP INDEX instance_uuid' ()
>> 2013-10-27 01:47:17.835 24457 TRACE nova Traceback (most recent call last):
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File "/usr/bin/nova-manage", line
>> 10, in <module>
>> 2013-10-27 01:47:17.835 24457 TRACE nova     sys.exit(main())
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 1377, in main
>> 2013-10-27 01:47:17.835 24457 TRACE nova     ret = fn(*fn_args, **fn_kwargs)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/cmd/manage.py", line 885, in sync
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return
>> migration.db_sync(version)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/db/migration.py", line 33, in db_sync
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return
>> IMPL.db_sync(version=version)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migration.py", line 75,
>> in db_sync
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return
>> versioning_api.upgrade(get_engine(), repository, version)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 186, in
>> upgrade
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return _migrate(url,
>> repository, version, upgrade=True, err=err, **opts)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File "<string>", line 2, in
>> _migrate
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migration.py", line 40,
>> in patched_with_engine
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return f(*a, **kw)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 366, in
>> _migrate
>> 2013-10-27 01:47:17.835 24457 TRACE nova     schema.runchange(ver, change,
>> changeset.step)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 91, in
>> runchange
>> 2013-10-27 01:47:17.835 24457 TRACE nova     change.run(self.engine, step)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", line
>> 145, in run
>> 2013-10-27 01:47:17.835 24457 TRACE nova     script_func(engine)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migrate_repo/versions/185_rename_unique_constraints.py",
>> line 129, in upgrade
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return
>> _uc_rename(migrate_engine, upgrade=True)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/migrate_repo/versions/185_rename_unique_constraints.py",
>> line 112, in _uc_rename
>> 2013-10-27 01:47:17.835 24457 TRACE nova     old_name, *(columns))
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/utils.py", line 197, in
>> drop_unique_constraint
>> 2013-10-27 01:47:17.835 24457 TRACE nova     uc.drop()
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/changeset/constraint.py", line 59,
>> in drop
>> 2013-10-27 01:47:17.835 24457 TRACE nova
>> self.__do_imports('constraintdropper', *a, **kw)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/changeset/constraint.py", line 32,
>> in __do_imports
>> 2013-10-27 01:47:17.835 24457 TRACE nova     run_single_visitor(engine,
>> visitorcallable, self, *a, **kw)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/changeset/databases/visitor.py",
>> line 75, in run_single_visitor
>> 2013-10-27 01:47:17.835 24457 TRACE nova     fn(element, **kwargs)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/changeset/ansisql.py", line 272,
>> in visit_migrate_unique_constraint
>> 2013-10-27 01:47:17.835 24457 TRACE nova     self._visit_constraint(*p, **k)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/changeset/ansisql.py", line 284,
>> in _visit_constraint
>> 2013-10-27 01:47:17.835 24457 TRACE nova     self.execute()
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/migrate/changeset/ansisql.py", line 42, in
>> execute
>> 2013-10-27 01:47:17.835 24457 TRACE nova     return
>> self.connection.execute(self.buffer.getvalue())
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in
>> execute
>> 2013-10-27 01:47:17.835 24457 TRACE nova     params)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 805, in
>> _execute_text
>> 2013-10-27 01:47:17.835 24457 TRACE nova     statement, parameters
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in
>> _execute_context
>> 2013-10-27 01:47:17.835 24457 TRACE nova     context)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in
>> _handle_dbapi_exception
>> 2013-10-27 01:47:17.835 24457 TRACE nova     exc_info
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 195, in
>> raise_from_cause
>> 2013-10-27 01:47:17.835 24457 TRACE nova     reraise(type(exception),
>> exception, tb=exc_tb)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in
>> _execute_context
>> 2013-10-27 01:47:17.835 24457 TRACE nova     context)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324,
>> in do_execute
>> 2013-10-27 01:47:17.835 24457 TRACE nova     cursor.execute(statement,
>> parameters)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
>> 2013-10-27 01:47:17.835 24457 TRACE nova     self.errorhandler(self, exc,
>> value)
>> 2013-10-27 01:47:17.835 24457 TRACE nova   File
>> "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in
>> defaulterrorhandler
>> 2013-10-27 01:47:17.835 24457 TRACE nova     raise errorclass, errorvalue
>> 2013-10-27 01:47:17.835 24457 TRACE nova OperationalError:
>> (OperationalError) (1553, "Cannot drop index 'instance_uuid': needed in a
>> foreign key constraint") 'ALTER TABLE instance_info_caches DROP INDEX
>> instance_uuid' ()
>> 2013-10-27 01:47:17.835 24457 TRACE nova
>>
>> _______________________________________________
>> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> Post to     : openstack at lists.openstack.org
>> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>
>
>


-- 
Blair Zajac, Ph.D.
CTO, OrcaWare Technologies
<blair at orcaware.com>
Subversion training, consulting and support
http://www.orcaware.com/svn/




More information about the Openstack mailing list