← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1046685] Re: InstanceNotFound exception was raised when more than one 'terminate_instance' operation was implemented if the first operation was blocked a period of time.

 

My reading of the code is that this bug does not exist in grizzly or
folsom and essex only gets security fixes now.

** Changed in: nova/essex
       Status: New => Won't Fix

** Changed in: nova
       Status: Triaged => Invalid

** Changed in: nova
       Status: Invalid => Won't Fix

** Changed in: nova
   Importance: Low => Undecided

-- 
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/1046685

Title:
  InstanceNotFound exception was raised when more than one
  'terminate_instance' operation was implemented if the first operation
  was blocked a period of time.

Status in OpenStack Compute (Nova):
  Won't Fix
Status in OpenStack Compute (nova) essex series:
  Won't Fix

Bug description:
  openstack-nova version: Essex

  I saw that if I terminated an instance with several 'Terminate Instance' operations on horizon, and if the first operation was blocked by and reason such as Host is too busy to delete the instance's disk&dir quickly enough, because the first operation will get the instance lock, so the the rest of operations will wait for it at here:
          @utils.synchronized(instance_uuid)
          def do_terminate_instance():
  when the first operation was done successfully, the rest of operations will go ahead to delete the 'deleted instance' by 'do_terminate_instance', when they searched this instance from db by 'instance = self.db.instance_get_by_uuid(elevated, instance_uuid)', the InstanceNotFound exception will be raised:
  2012-09-05 16:59:33 ERROR nova.rpc.amqp [req-f50e5c63-dc90-4852-8327-31382ba17262 4969d06c67034c148be51e0147f28b10 844dc9fb4ad9499ea97b07c7b6cee137] Exception during message handling
  2012-09-05 16:59:33 TRACE nova.rpc.amqp Traceback (most recent call last):
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/rpc/amqp.py", line 253, in _process_data
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     rval = node_func(context=ctxt, **node_args)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/exception.py", line 114, in wrapped
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     return f(*args, **kw)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 159, in decorated_function
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     function(self, context, instance_uuid, *args, **kwargs)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 177, in decorated_function
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     return function(self, context, instance_uuid, *args, **kwargs)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 759, in terminate_instance
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     do_terminate_instance()
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/utils.py", line 945, in inner
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     retval = f(*args, **kwargs)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 749, in do_terminate_instance
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     instance = self.db.instance_get_by_uuid(elevated, instance_uuid)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/db/api.py", line 535, in instance_get_by_uuid
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     return IMPL.instance_get_by_uuid(context, uuid)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/api.py", line 120, in wrapper
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     return f(*args, **kwargs)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp   File "/usr/lib/python2.7/dist-packages/nova/db/sqlalchemy/api.py", line 1327, in instance_get_by_uuid
  2012-09-05 16:59:33 TRACE nova.rpc.amqp     raise exception.InstanceNotFound(instance_id=uuid)
  2012-09-05 16:59:33 TRACE nova.rpc.amqp InstanceNotFound: Instance 71f0107d-f3aa-4bb8-acd2-2b623dfd42a7 could not be found.
  2012-09-05 16:59:33 TRACE nova.rpc.amqp

  I think this is a race problem, and should NOT be raised as an error,
  may be we should catch this exception and just LOG an warning for
  this. what guys think about this?

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1046685/+subscriptions