[glance][neutron] Glance migrations broken for postgresql; impact to Neutron periodic jobs
Nate Johnston
nate.johnston at redhat.com
Tue Aug 27 19:21:07 UTC 2019
Glance developers,
I am investigating failures with the neutron-tempest-postgres-full periodic job
in Zuul, and it looks like the failing step is actually a database migration for
Glance that occurs during devstack setup. Pasted below is a representative
example [1]. You can see the same issue causing failures for this neutron
periodic job by looking at the Zuul failures [2]; the error is in
logs/devstacklog.txt.gz.
The last successful job was 2019-08-15T06:07:06; the next one on 2019-08-16
failed. But there were no changes merged in glance during that time period [3].
So if you could help debug the source of this issue then we can hopefully get
this job - and probably whatever others depend on postgresql - back working.
2019-08-27 06:35:44.963 | INFO [alembic.runtime.migration] Running upgrade rocky_expand02 -> train_expand01, empty expand for symmetry with train_contract01
2019-08-27 06:35:44.967 | INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
2019-08-27 06:35:44.967 | INFO [alembic.runtime.migration] Will assume transactional DDL.
2019-08-27 06:35:44.970 | Upgraded database to: train_expand01, current revision(s): train_expand01
2019-08-27 06:35:44.971 | INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
2019-08-27 06:35:44.971 | INFO [alembic.runtime.migration] Will assume transactional DDL.
2019-08-27 06:35:44.975 | INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
2019-08-27 06:35:44.975 | INFO [alembic.runtime.migration] Will assume transactional DDL.
2019-08-27 06:35:44.995 | CRITI [glance] Unhandled error
2019-08-27 06:35:44.996 | Traceback (most recent call last):
2019-08-27 06:35:44.996 | File "/usr/local/bin/glance-manage", line 10, in <module>
2019-08-27 06:35:44.996 | sys.exit(main())
2019-08-27 06:35:44.996 | File "/opt/stack/new/glance/glance/cmd/manage.py", line 563, in main
2019-08-27 06:35:44.996 | return CONF.command.action_fn()
2019-08-27 06:35:44.996 | File "/opt/stack/new/glance/glance/cmd/manage.py", line 395, in sync
2019-08-27 06:35:44.996 | self.command_object.sync(CONF.command.version)
2019-08-27 06:35:44.996 | File "/opt/stack/new/glance/glance/cmd/manage.py", line 166, in sync
2019-08-27 06:35:44.996 | self.migrate(online_migration=False)
2019-08-27 06:35:44.996 | File "/opt/stack/new/glance/glance/cmd/manage.py", line 294, in migrate
2019-08-27 06:35:44.996 | if data_migrations.has_pending_migrations(db_api.get_engine()):
2019-08-27 06:35:44.996 | File "/opt/stack/new/glance/glance/db/sqlalchemy/alembic_migrations/data_migrations/__init__.py", line 61, in has_pending_migrations
2019-08-27 06:35:44.997 | return any([x.has_migrations(engine) for x in migrations])
2019-08-27 06:35:44.997 | File "/opt/stack/new/glance/glance/db/sqlalchemy/alembic_migrations/data_migrations/train_migrate01_backend_to_store.py", line 28, in has_migrations
2019-08-27 06:35:44.997 | metadata_backend = con.execute(sql_query)
2019-08-27 06:35:44.997 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 982, in execute
2019-08-27 06:35:44.997 | return self._execute_text(object_, multiparams, params)
2019-08-27 06:35:44.997 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1155, in _execute_text
2019-08-27 06:35:44.997 | parameters,
2019-08-27 06:35:44.997 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
2019-08-27 06:35:44.997 | e, statement, parameters, cursor, context
2019-08-27 06:35:44.997 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1464, in _handle_dbapi_exception
2019-08-27 06:35:44.997 | util.raise_from_cause(newraise, exc_info)
2019-08-27 06:35:44.997 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
2019-08-27 06:35:44.997 | reraise(type(exception), exception, tb=exc_tb, cause=cause)
2019-08-27 06:35:44.997 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
2019-08-27 06:35:44.998 | cursor, statement, parameters, context
2019-08-27 06:35:44.998 | File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 552, in do_execute
2019-08-27 06:35:44.998 | cursor.execute(statement, parameters)
2019-08-27 06:35:44.998 | DBError: (psycopg2.errors.UndefinedFunction) function instr(text, unknown) does not exist
2019-08-27 06:35:44.998 | LINE 1: select meta_data from image_locations where INSTR(meta_data,...
2019-08-27 06:35:44.998 | ^
2019-08-27 06:35:44.998 | HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Thanks,
Nate
[1] also http://paste.openstack.org/show/765665/ if that is an easier view
[2] http://zuul.openstack.org/builds?project=openstack%2Fneutron&job_name=neutron-tempest-postgres-full&branch=master
[3] https://review.opendev.org/#/q/project:openstack/glance+status:merged
More information about the openstack-discuss
mailing list