Comment 0 for bug 1658116

Revision history for this message
Ron De Rose (ronald-de-rose) wrote :

We seen a couple instances now where the wrong migration step is run in tests when the migration file names in each repo are the same. For example, in the following patch, expand was called, yet the contract file was the one actually run:

Traceback (most recent call last):
  File "keystone/tests/unit/test_sql_upgrade.py", line 1964, in test_migration_013_add_domain_id_to_user
    self.expand(13)
  File "keystone/tests/unit/test_sql_upgrade.py", line 228, in expand
    self.repos[EXPAND_REPO].upgrade(*args, **kwargs)
  File "keystone/common/sql/upgrades.py", line 63, in upgrade
    self.schema_.runchange(ver, change, changeset.step)
  File "/home/jenkins/workspace/gate-keystone-python27-db-ubuntu-xenial/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/schema.py", line 93, in runchange
    change.run(self.engine, step)
  File "/home/jenkins/workspace/gate-keystone-python27-db-ubuntu-xenial/.tox/py27/local/lib/python2.7/site-packages/migrate/versioning/script/py.py", line 148, in run
    script_func(engine)
  File "/home/jenkins/workspace/gate-keystone-python27-db-ubuntu-xenial/keystone/common/sql/contract_repo/versions/013_add_domain_id_to_user.py", line 43, in upgrade
    migrate.UniqueConstraint(user.c.id, user.c.domain_id,
  File "/home/jenkins/workspace/gate-keystone-python27-db-ubuntu-xenial/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/util/_collections.py", line 212, in __getattr__
    raise AttributeError(key)
AttributeError: domain_id

http://logs.openstack.org/74/409874/29/check/gate-keystone-python27-db-ubuntu-xenial/d2a60fd/testr_results.html.gz

Likewise, morgan was seeing a similar issue here, where the expand migration file wasn't being run, so the test failed the table exist check:
https://review.openstack.org/#/c/422817/3/keystone/tests/unit/test_sql_upgrade.py

However, both patches would run successfully locally.

As a workaround, making the repo file names unique fixes the problem, suggesting that perhaps this is related to the files being cached.