database migration 009 fails on Centos ('Can't DROP 'cron_triggers_v2_workflow_input_hash_workflow_name_pattern__key')

Bug #1526463 reported by Dan Prince
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mistral
Fix Released
High
Dan Prince

Bug Description

INFO [alembic.runtime.migration] Running upgrade 008 -> 009, Add database indices
Traceback (most recent call last):
  File "/usr/bin/mistral-db-manage", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/mistral/db/sqlalchemy/migration/cli.py", line 129, in main
    CONF.command.func(config, CONF.command.name)
  File "/usr/lib/python2.7/site-packages/mistral/db/sqlalchemy/migration/cli.py", line 58, in do_upgrade
    do_alembic_command(config, cmd, revision, sql=CONF.command.sql)
  File "/usr/lib/python2.7/site-packages/mistral/db/sqlalchemy/migration/cli.py", line 39, in do_alembic_command
    getattr(alembic_cmd, cmd)(config, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/alembic/command.py", line 174, in upgrade
    script.run_env()
  File "/usr/lib/python2.7/site-packages/alembic/script/base.py", line 397, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
    module = load_module_py(module_id, path)
  File "/usr/lib/python2.7/site-packages/alembic/util/compat.py", line 79, in load_module_py
    mod = imp.load_source(module_id, path, fp)
  File "/usr/lib/python2.7/site-packages/mistral/db/sqlalchemy/migration/alembic_migrations/env.py", line 86, in <module>
    run_migrations_online()
  File "/usr/lib/python2.7/site-packages/mistral/db/sqlalchemy/migration/alembic_migrations/env.py", line 78, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/usr/lib/python2.7/site-packages/alembic/runtime/environment.py", line 797, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 312, in run_migrations
    step.migration_fn(**kw)
  File "/usr/lib/python2.7/site-packages/mistral/db/sqlalchemy/migration/alembic_migrations/versions/009_add_database_indices.py", line 91, in upgrade
    type_='unique'
  File "<string>", line 8, in drop_constraint
  File "<string>", line 3, in drop_constraint
  File "/usr/lib/python2.7/site-packages/alembic/operations/ops.py", line 145, in drop_constraint
    return operations.invoke(op)
  File "/usr/lib/python2.7/site-packages/alembic/operations/base.py", line 318, in invoke
    return fn(self, operation)
  File "/usr/lib/python2.7/site-packages/alembic/operations/toimpl.py", line 146, in drop_constraint
    schema=operation.schema,
  File "/usr/lib/python2.7/site-packages/alembic/ddl/impl.py", line 183, in drop_constraint
    self._exec(schema.DropConstraint(const))
  File "/usr/lib/python2.7/site-packages/alembic/ddl/impl.py", line 118, in _exec
    return conn.execute(construct, *multiparams, **params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
    return meth(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 68, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 968, in _execute_ddl
    compiled
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1339, in _handle_dbapi_exception
    exc_info
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 442, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1091, "Can't DROP 'cron_triggers_v2_workflow_input_hash_workflow_name_pattern__key'; check that column/key exists") [SQL: u'ALTER TABLE cron_triggers_v2 DROP INDEX cron_triggers_v2_workflow_input_hash_workflow_name_pattern__key']

Dan Prince (dan-prince)
Changed in mistral:
assignee: nobody → Dan Prince (dan-prince)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to mistral (master)

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

Lingxian Kong (kong)
Changed in mistral:
milestone: none → mitaka-2
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to mistral (master)

Reviewed: https://review.openstack.org/258080
Committed: https://git.openstack.org/cgit/openstack/mistral/commit/?id=828228da128a59cf94e554392f0a2faeb7da3ba5
Submitter: Jenkins
Branch: master

commit 828228da128a59cf94e554392f0a2faeb7da3ba5
Author: Dan Prince <email address hidden>
Date: Tue Dec 15 13:32:53 2015 -0500

    Fix DB migration 009 constraint dropping

    Database migration 009 fails to run on Centos with errors
    about indexes not existing. This occurs on a fresh installation
    where no previous data, etc. The indexes being dropped in migration
    009 were likely automatically added by some other MySQL
    version/distribution so to support both cases we add a simple
    check to ensure the index exists before attempting to drop it.

    Change-Id: Ib6d848c1e32bbab6fdb7e30009f5c5f907fd8477
    Closes-bug: #1526463

Changed in mistral:
status: In Progress → Fix Released
Changed in mistral:
milestone: mitaka-2 → 2.0.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.