yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #64046
[Bug 1602057] Re: [SRU] (libvirt) KeyError updating resources for some node, guest.uuid is not in BDM list
This bug was fixed in the package nova - 2:13.1.3-0ubuntu2~cloud0
---------------
nova (2:13.1.3-0ubuntu2~cloud0) trusty-mitaka; urgency=medium
.
* New update for the Ubuntu Cloud Archive.
.
nova (2:13.1.3-0ubuntu2) xenial; urgency=medium
.
* Fix exception due to BDM race in get_available_resource() (LP: #1602057)
- d/p/fix-exception-due-to-bdm-race-in-get_available_resou.patch
** Changed in: cloud-archive/mitaka
Status: Fix Committed => Fix Released
--
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/1602057
Title:
[SRU] (libvirt) KeyError updating resources for some node, guest.uuid
is not in BDM list
Status in Ubuntu Cloud Archive:
Fix Released
Status in Ubuntu Cloud Archive mitaka series:
Fix Released
Status in Ubuntu Cloud Archive newton series:
Fix Released
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) mitaka series:
Won't Fix
Status in OpenStack Compute (nova) newton series:
Fix Committed
Status in nova package in Ubuntu:
Fix Released
Status in nova source package in Xenial:
Fix Released
Bug description:
[Impact]
There currently exists a race condition whereby the compute
resource_tracker periodic task polls extant instances and checks their
BDMs which can occur prior to any mappings having yet been created
e.g. root disk mapping for new instances. This patch ensures that
instances without any BDMs are skipped.
[Test Case]
* deploy Openstack Mitaka with debug logging enabled (not essential but helps)
* create an instance
* delete its BDMs - pastebin.ubuntu.com/24287419/
* watch /var/log/nova/nova-compute.log on hypervisor hosting
instance and wait for next resource_tracker tick
* ensure that exception mentioned in LP does not occur (happens
after "Auditing locally available compute resources for node")
[Regression Potential]
The resource tracker information is used by the scheduler when
deciding which compute hosts are able to have an instances scheduled
to them. In this case the resource tracker would be skipping instances
that would contribute to disk overcommit ratios. As such it is
possible that that scheduler will have momentarily skewed information
about resource consumption on that compute host until the next
resource_tracker tick. Since the likelihood of this race condition
occurring is hopefully slim and provided that users have a reasonable
frequency for the resource_tracker, the likelihood of this becoming a
long term problem is low since the issue will always be corrected by a
subsequent tick (although if the compute host in question were
saturated that would not be fixed until an instances was deleted or
migrated).
[Other]
Note that this patch did not make it into upstream stable/mitaka branch due to the stable cutoff so the proposal is to carry in the archive (indefinitely).
--------
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager [req-d5d5d486-b488-4429-bbb5-24c9f19ff2c0 - - - - -] Error updating resources for node controller.
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager Traceback (most recent call last):
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6726, in update_available_resource
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager rt.update_available_resource(context)
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 500, in update_available_resource
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager resources = self.driver.get_available_resource(self.nodename)
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5728, in get_available_resource
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager disk_over_committed = self._get_disk_over_committed_size_total()
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 7397, in _get_disk_over_committed_size_total
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager local_instances[guest.uuid], bdms[guest.uuid])
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager KeyError: '0a5c5743-9555-4dfd-b26e-198449ebeee5'
2016-07-12 09:54:36.021 10056 ERROR nova.compute.manager
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1602057/+subscriptions