← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1439919] [NEW] 'power-state' should not be 'running' when instance evacuate failed

 

Public bug reported:

My environment:
1. nova 2014.1
2. novaclient 2.17.0

I checked the source:
nova.compute.manager.py:
 def rebuild_instance(self, context, instance, orig_image_ref, image_ref,
                         injected_files, new_pass, orig_sys_metadata,
                         bdms, recreate, on_shared_storage,
                         preserve_ephemeral=False):
        with self._error_out_instance_on_exception(context, instance):
            LOG.info(_LI("Rebuilding instance"), context=context,
                      instance=instance)

            if recreate:
                if not self.driver.capabilities["supports_recreate"]:
                    raise exception.InstanceRecreateNotSupported

If raise InstanceRecreateNotSupported, only set vm_state to 'ERROR', but
task_state was 'running' which should be set to 'NOSTAT' or else.

    def _error_out_instance_on_exception(self, context, instance,
                                         quotas=None,
                                         instance_state=vm_states.ACTIVE):
...
        except Exception:
            LOG.exception(_LE('Setting instance vm_state to ERROR'),
                          instance_uuid=instance_uuid)
            with excutils.save_and_reraise_exception():
                if quotas:
                    quotas.rollback()
                self._set_instance_error_state(context, instance)

** Affects: nova
     Importance: Undecided
         Status: New

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

Title:
  'power-state' should not be 'running' when instance evacuate failed

Status in OpenStack Compute (Nova):
  New

Bug description:
  My environment:
  1. nova 2014.1
  2. novaclient 2.17.0

  I checked the source:
  nova.compute.manager.py:
   def rebuild_instance(self, context, instance, orig_image_ref, image_ref,
                           injected_files, new_pass, orig_sys_metadata,
                           bdms, recreate, on_shared_storage,
                           preserve_ephemeral=False):
          with self._error_out_instance_on_exception(context, instance):
              LOG.info(_LI("Rebuilding instance"), context=context,
                        instance=instance)

              if recreate:
                  if not self.driver.capabilities["supports_recreate"]:
                      raise exception.InstanceRecreateNotSupported

  If raise InstanceRecreateNotSupported, only set vm_state to 'ERROR',
  but task_state was 'running' which should be set to 'NOSTAT' or else.

      def _error_out_instance_on_exception(self, context, instance,
                                           quotas=None,
                                           instance_state=vm_states.ACTIVE):
  ...
          except Exception:
              LOG.exception(_LE('Setting instance vm_state to ERROR'),
                            instance_uuid=instance_uuid)
              with excutils.save_and_reraise_exception():
                  if quotas:
                      quotas.rollback()
                  self._set_instance_error_state(context, instance)

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


Follow ups

References