← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1708958] [NEW] disabling a compute service does not disable the resource provider

 

Public bug reported:

If you make a multi node devstack (nova master as of August 6th, 2017),
or otherwise have multiple compute nodes, all of those compute nodes
will create resource providers and relevant inventory.

Later if you disable one of the compute nodes with a nova service-
disable {service id}, that nova-compute will be disabled, but the
associated resource provider will still exist with legit inventory in
the placement service.

This will mean that /allocation_candidates or /resource_providers  will
return results including the disabled compute node, but they will be
bogus.

It's not clear what the right behaviour is here. Should the rp of the
disabled service be deleted? Have its inventory truncated? If there are
other hosts available that satisfy the request, things go forward as
desired, so there's not a functional bug here, but the data in placement
is incorrect, which is undesirable.

(On a related note, if you delete a compute node's resource provider
from the placement service and don't restart the associated nova-
compute, the _ensure_resource_provider method does _not_ create the
resource provider anew because the _resource_providers dict still
contains the uuid. This might be expected behaviour but it surprised me
while I was messing around.)

** Affects: nova
     Importance: Low
         Status: New


** Tags: placement

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

Title:
  disabling a compute service does not disable the resource provider

Status in OpenStack Compute (nova):
  New

Bug description:
  If you make a multi node devstack (nova master as of August 6th,
  2017), or otherwise have multiple compute nodes, all of those compute
  nodes will create resource providers and relevant inventory.

  Later if you disable one of the compute nodes with a nova service-
  disable {service id}, that nova-compute will be disabled, but the
  associated resource provider will still exist with legit inventory in
  the placement service.

  This will mean that /allocation_candidates or /resource_providers
  will return results including the disabled compute node, but they will
  be bogus.

  It's not clear what the right behaviour is here. Should the rp of the
  disabled service be deleted? Have its inventory truncated? If there
  are other hosts available that satisfy the request, things go forward
  as desired, so there's not a functional bug here, but the data in
  placement is incorrect, which is undesirable.

  (On a related note, if you delete a compute node's resource provider
  from the placement service and don't restart the associated nova-
  compute, the _ensure_resource_provider method does _not_ create the
  resource provider anew because the _resource_providers dict still
  contains the uuid. This might be expected behaviour but it surprised
  me while I was messing around.)

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


Follow ups