← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1170657] Re: Setting start_guests_on_host_boot to TRUE results in error of all VMs

 

** No longer affects: nova/folsom

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

Title:
  Setting start_guests_on_host_boot to TRUE results in error of all VMs

Status in OpenStack Compute (Nova):
  Invalid

Bug description:
  When directive bellow is set to True in nova.conf:

  start_guests_on_host_boot = True
  resume_guests_state_on_host_boot = True

  it will result to vm_state=error of ALL instances running on compute
  node when restarting the nova-compute service. This is because of
  malformed condiftion in manager.py apparently:

  {code}
                 if ((expect_running and FLAGS.resume_guests_state_on_host_boot)
                       or FLAGS.start_guests_on_host_boot):
                     LOG.info(
                             _('Rebooting instance after nova-compute restart.'),
                             locals(), instance=instance)

                      block_device_info = \
                          self._get_instance_volume_block_device_info(
                              context, instance['uuid'])

                      try:
                          LOG.info('Resume instance:%s' % str(instance))
                          self.driver.resume_state_on_host_boot(
                                  context,
                                  instance,
                                  self._legacy_nw_info(net_info),
                                  block_device_info)
                      except NotImplementedError:
                          LOG.warning(_('Hypervisor driver does not support '
                                        'resume guests'), instance=instance)
                      except Exception:
                          # NOTE(vish): The instance failed to resume, so we
                          #             set the instance to error and attempt
                          #             to continue.
                          LOG.warning(_('Failed to resume instance'),
                                      instance=instance)

                          self._set_instance_error_state(context,
                                                         instance['uuid'])
   {code}

  it is obvious that setting start_guests_on_host_boot = True will
  satisfy the condition and EVERY instance will be passed to
  resume_state_on_host_boot call. This is malicious and evidently not
  intended behaviour.

  Also it is questionable whether better catching of thrown Exceptions
  would help to distinct among different statuses.

  Regards, Zdenek Pizl

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