Public bug reported:

Jens Harbott reported this in devstack:

https://review.openstack.org/#/c/635519/

He's running the n-api-meta service in the subnode per the multinode
guide:

https://docs.openstack.org/devstack/latest/guides/multinode-lab.html

However with current devstack, which doesn't configure nova.conf with
database access on the subnode, n-api-meta fails with this:

http://paste.openstack.org/show/744683/

Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: CRITICAL 
nova [None req-538e6b11-f91b-48d8-9c7a-d177dff7739b None None] Unhandled error: 
DBNonExistentTable: (sqlite3.OperationalError) no such t
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
Traceback (most recent call last):
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/bin/nova-metadata-wsgi", line 52, in <module>
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  application = init_application()
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/api/metadata/wsgi.py", line 20, in init_application
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return wsgi_app.init_application(NAME)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/api/openstack/wsgi_app.py", line 82, in 
init_application
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  _setup_service(CONF.host, name)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/api/openstack/wsgi_app.py", line 49, in 
_setup_service
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  ctxt, host, binary)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", 
line 184, in wrapper
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  result = fn(cls, context, *args, **kwargs)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/objects/service.py", line 334, in 
get_by_host_and_binary
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  host, binary)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/db/api.py", line 127, in 
service_get_by_host_and_binary
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return IMPL.service_get_by_host_and_binary(context, host, binary)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 242, in wrapped
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return f(context, *args, **kwargs)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 500, in 
service_get_by_host_and_binary
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  filter_by(binary=binary).\
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
2979, in first
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  ret = list(self[0:1])
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
2771, in __getitem__
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return list(res)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
3081, in __iter__
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return self._execute_and_instances(context)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
3106, in _execute_and_instances
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  result = conn.execute(querycontext.statement, self._params)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
980, in execute
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return meth(self, multiparams, params)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 
273, in _execute_on_connection
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  return connection._execute_clauseelement(self, multiparams, params)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1099, in _execute_clauseelement
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  distilled_params,
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1240, in _execute_context
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  e, statement, parameters, cursor, context
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1456, in _handle_dbapi_exception
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  util.raise_from_cause(newraise, exc_info)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 
296, in raise_from_cause
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  reraise(type(exception), exception, tb=exc_tb, cause=cause)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1236, in _execute_context
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  cursor, statement, parameters, context
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", 
line 536, in do_execute
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova   
  cursor.execute(statement, parameters)
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
DBNonExistentTable: (sqlite3.OperationalError) no such table: services [SQL: 
u'SELECT services.created_at AS services_created_at, serv
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: unable to 
load app 0 (mountpoint='') (callable not found or import error)

I believe this is due to the nova-metadata service not configuring the
conductor indirection API when run in uwsgi mode like it is when run
with eventlet:

https://github.com/openstack/nova/blob/3cfcd117ce7ddb5a8d94396191cde559db73fb86/nova/cmd/api_metadata.py#L45

It also appears that we don't have any multinode CI jobs that run with
the n-api-meta service configured so we don't hit this in the gate.

The workaround which most deployments probably use is configuring
nova.conf with database access and run n-api-meta with that, even from
subnodes.

** Affects: nova
     Importance: Medium
         Status: New


** Tags: api metadata

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1815082

Title:
  "DBNonExistentTable: (sqlite3.OperationalError) no such table:
  services" when starting nova-metadata under uwsgi

Status in OpenStack Compute (nova):
  New

Bug description:
  Jens Harbott reported this in devstack:

  https://review.openstack.org/#/c/635519/

  He's running the n-api-meta service in the subnode per the multinode
  guide:

  https://docs.openstack.org/devstack/latest/guides/multinode-lab.html

  However with current devstack, which doesn't configure nova.conf with
  database access on the subnode, n-api-meta fails with this:

  http://paste.openstack.org/show/744683/

  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: CRITICAL 
nova [None req-538e6b11-f91b-48d8-9c7a-d177dff7739b None None] Unhandled error: 
DBNonExistentTable: (sqlite3.OperationalError) no such t
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
Traceback (most recent call last):
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/bin/nova-metadata-wsgi", line 52, in <module>
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    application = init_application()
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/api/metadata/wsgi.py", line 20, in init_application
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return wsgi_app.init_application(NAME)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/api/openstack/wsgi_app.py", line 82, in 
init_application
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    _setup_service(CONF.host, name)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/api/openstack/wsgi_app.py", line 49, in 
_setup_service
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    ctxt, host, binary)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/oslo_versionedobjects/base.py", 
line 184, in wrapper
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    result = fn(cls, context, *args, **kwargs)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/objects/service.py", line 334, in 
get_by_host_and_binary
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    host, binary)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/db/api.py", line 127, in 
service_get_by_host_and_binary
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return IMPL.service_get_by_host_and_binary(context, host, binary)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 242, in wrapped
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return f(context, *args, **kwargs)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 500, in 
service_get_by_host_and_binary
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    filter_by(binary=binary).\
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
2979, in first
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    ret = list(self[0:1])
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
2771, in __getitem__
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return list(res)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
3081, in __iter__
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return self._execute_and_instances(context)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 
3106, in _execute_and_instances
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    result = conn.execute(querycontext.statement, self._params)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
980, in execute
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return meth(self, multiparams, params)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", 
line 273, in _execute_on_connection
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    return connection._execute_clauseelement(self, multiparams, params)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1099, in _execute_clauseelement
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    distilled_params,
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1240, in _execute_context
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    e, statement, parameters, cursor, context
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1456, in _handle_dbapi_exception
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    util.raise_from_cause(newraise, exc_info)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 
296, in raise_from_cause
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 
1236, in _execute_context
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    cursor, statement, parameters, context
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", 
line 536, in do_execute
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
    cursor.execute(statement, parameters)
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
DBNonExistentTable: (sqlite3.OperationalError) no such table: services [SQL: 
u'SELECT services.created_at AS services_created_at, serv
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: ERROR nova 
  Feb 07 13:33:32 jh-devstack01a devstack@n-api-meta.service[22651]: unable to 
load app 0 (mountpoint='') (callable not found or import error)

  I believe this is due to the nova-metadata service not configuring the
  conductor indirection API when run in uwsgi mode like it is when run
  with eventlet:

  
https://github.com/openstack/nova/blob/3cfcd117ce7ddb5a8d94396191cde559db73fb86/nova/cmd/api_metadata.py#L45

  It also appears that we don't have any multinode CI jobs that run with
  the n-api-meta service configured so we don't hit this in the gate.

  The workaround which most deployments probably use is configuring
  nova.conf with database access and run n-api-meta with that, even from
  subnodes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1815082/+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

Reply via email to