this bug is similar to https://bugs.launchpad.net/nova/+bug/1158897
but this bug is cause by _reserve_quota_delta() method, which will need to access DB if quota delta is not empty,
the trace log is:
2013-12-19 01:39:40.879 ERROR nova.compute [-] No db access allowed in nova-compute:
File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
result = function(*args, **kwargs)
File "/opt/stack/nova/nova/openstack/common/loopingcall.py", line 125, in _inner
idle = self.f(*self.args, **self.kw)
File "/opt/stack/nova/nova/service.py", line 314, in periodic_tasks
return self.manager.periodic_tasks(ctxt, raise_on_error=raise_on_error)
File "/opt/stack/nova/nova/manager.py", line 101, in periodic_tasks
return self.run_periodic_tasks(context, raise_on_error=raise_on_error)
File "/opt/stack/nova/nova/openstack/common/periodic_task.py", line 180, in run_periodic_tasks
task(self, context)
File "/opt/stack/nova/nova/compute/manager.py", line 4535, in _poll_unconfirmed_resizes
migration=migration)
File "/opt/stack/nova/nova/compute/api.py", line 199, in wrapped
return func(self, context, target, *args, **kwargs)
File "/opt/stack/nova/nova/compute/api.py", line 189, in inner
return function(self, context, instance, *args, **kwargs)
File "/opt/stack/nova/nova/compute/api.py", line 216, in _wrapped
return fn(self, context, instance, *args, **kwargs)
File "/opt/stack/nova/nova/compute/api.py", line 170, in inner
return f(self, context, instance, *args, **kw)
File "/opt/stack/nova/nova/compute/api.py", line 2158, in confirm_resize
reservations = self._reserve_quota_delta(context, deltas)
File "/opt/stack/nova/nova/compute/api.py", line 2238, in _reserve_quota_delta
return QUOTAS.reserve(context, project_id=project_id, **deltas)
File "/opt/stack/nova/nova/quota.py", line 1272, in reserve
user_id=user_id)
File "/opt/stack/nova/nova/quota.py", line 487, in reserve
has_sync=True, project_id=project_id)
File "/opt/stack/nova/nova/quota.py", line 354, in _get_quotas
usages=False)
File "/opt/stack/nova/nova/quota.py", line 264, in get_project_quotas
project_quotas = db.quota_get_all_by_project(context, project_id)
File "/opt/stack/nova/nova/db/api.py", line 1023, in quota_get_all_by_project
return IMPL.quota_get_all_by_project(context, project_id)
File "/opt/stack/nova/nova/cmd/compute.py", line 48, in __call__
stacktrace = "".join(traceback.format_stack())
this bug is similar to https:/ /bugs.launchpad .net/nova/ +bug/1158897 quota_delta( ) method, which will need to access DB if quota delta is not empty, lib/python2. 7/dist- packages/ eventlet/ greenthread. py", line 194, in main nova/nova/ openstack/ common/ loopingcall. py", line 125, in _inner nova/nova/ service. py", line 314, in periodic_tasks periodic_ tasks(ctxt, raise_on_ error=raise_ on_error) nova/nova/ manager. py", line 101, in periodic_tasks periodic_ tasks(context, raise_on_ error=raise_ on_error) nova/nova/ openstack/ common/ periodic_ task.py" , line 180, in run_periodic_tasks nova/nova/ compute/ manager. py", line 4535, in _poll_unconfirm ed_resizes migration) nova/nova/ compute/ api.py" , line 199, in wrapped nova/nova/ compute/ api.py" , line 189, in inner nova/nova/ compute/ api.py" , line 216, in _wrapped nova/nova/ compute/ api.py" , line 170, in inner nova/nova/ compute/ api.py" , line 2158, in confirm_resize quota_delta( context, deltas) nova/nova/ compute/ api.py" , line 2238, in _reserve_ quota_delta reserve( context, project_ id=project_ id, **deltas) nova/nova/ quota.py" , line 1272, in reserve id=user_ id) nova/nova/ quota.py" , line 487, in reserve id=project_ id) nova/nova/ quota.py" , line 354, in _get_quotas nova/nova/ quota.py" , line 264, in get_project_quotas get_all_ by_project( context, project_id) nova/nova/ db/api. py", line 1023, in quota_get_ all_by_ project get_all_ by_project( context, project_id) nova/nova/ cmd/compute. py", line 48, in __call__ traceback. format_ stack() )
but this bug is cause by _reserve_
the trace log is:
2013-12-19 01:39:40.879 ERROR nova.compute [-] No db access allowed in nova-compute:
File "/usr/local/
result = function(*args, **kwargs)
File "/opt/stack/
idle = self.f(*self.args, **self.kw)
File "/opt/stack/
return self.manager.
File "/opt/stack/
return self.run_
File "/opt/stack/
task(self, context)
File "/opt/stack/
migration=
File "/opt/stack/
return func(self, context, target, *args, **kwargs)
File "/opt/stack/
return function(self, context, instance, *args, **kwargs)
File "/opt/stack/
return fn(self, context, instance, *args, **kwargs)
File "/opt/stack/
return f(self, context, instance, *args, **kw)
File "/opt/stack/
reservations = self._reserve_
File "/opt/stack/
return QUOTAS.
File "/opt/stack/
user_
File "/opt/stack/
has_sync=True, project_
File "/opt/stack/
usages=False)
File "/opt/stack/
project_quotas = db.quota_
File "/opt/stack/
return IMPL.quota_
File "/opt/stack/
stacktrace = "".join(
2013-12-19 01:39:40.879 ERROR nova.compute. manager [-] [instance: 4ffaabaf- a480-421f- a7a7-efd148d7c9 56] Error auto-confirming resize: nova-compute. Will retry later.