yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #28234
[Bug 1419115] [NEW] IndexError adding host to availability zone
Public bug reported:
There appears to be a bug in the code dealing with adding a disabled
host to an aggregate that is exported as an availability zone.
I disable the nova-compute service on a host and then tried to add it to
an aggregate that is exported as an availabilty zone. This resulted in
the following error.
File "/usr/lib64/python2.7/site-packages/oslo/utils/excutils.py", line 82, in __exit__
six.reraise(self.type_, self.value, self.tb)
File "/usr/lib64/python2.7/site-packages/nova/exception.py", line 71, in wrapped
return f(self, context, *args, **kw)
File "/usr/lib64/python2.7/site-packages/nova/compute/api.py", line 3673, in add_host_to_aggregate
aggregate=aggregate)
File "/usr/lib64/python2.7/site-packages/nova/compute/api.py", line 3591, in is_safe_to_update_az
host_az = host_azs.pop()
IndexError: pop from empty list
The code looks like this:
if 'availability_zone' in metadata:
_hosts = hosts or aggregate.hosts
zones, not_zones = availability_zones.get_availability_zones(
context, with_hosts=True)
for host in _hosts:
# NOTE(sbauza): Host can only be in one AZ, so let's take only
# the first element
host_azs = [az for (az, az_hosts) in zones
if host in az_hosts
and az != CONF.internal_service_availability_zone]
host_az = host_azs.pop()
It appears that for a disabled host, host_azs can be empty, resulting in
an error when we try to pop() from it.
It works fine if the service is enabled on the host, and it works fine
if the service is diabled and I try to add the host to an aggregate that
is not exported as an availability zone.
** Affects: nova
Importance: Undecided
Status: New
** Tags: compute
--
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/1419115
Title:
IndexError adding host to availability zone
Status in OpenStack Compute (Nova):
New
Bug description:
There appears to be a bug in the code dealing with adding a disabled
host to an aggregate that is exported as an availability zone.
I disable the nova-compute service on a host and then tried to add it
to an aggregate that is exported as an availabilty zone. This resulted
in the following error.
File "/usr/lib64/python2.7/site-packages/oslo/utils/excutils.py", line 82, in __exit__
six.reraise(self.type_, self.value, self.tb)
File "/usr/lib64/python2.7/site-packages/nova/exception.py", line 71, in wrapped
return f(self, context, *args, **kw)
File "/usr/lib64/python2.7/site-packages/nova/compute/api.py", line 3673, in add_host_to_aggregate
aggregate=aggregate)
File "/usr/lib64/python2.7/site-packages/nova/compute/api.py", line 3591, in is_safe_to_update_az
host_az = host_azs.pop()
IndexError: pop from empty list
The code looks like this:
if 'availability_zone' in metadata:
_hosts = hosts or aggregate.hosts
zones, not_zones = availability_zones.get_availability_zones(
context, with_hosts=True)
for host in _hosts:
# NOTE(sbauza): Host can only be in one AZ, so let's take only
# the first element
host_azs = [az for (az, az_hosts) in zones
if host in az_hosts
and az != CONF.internal_service_availability_zone]
host_az = host_azs.pop()
It appears that for a disabled host, host_azs can be empty, resulting
in an error when we try to pop() from it.
It works fine if the service is enabled on the host, and it works fine
if the service is diabled and I try to add the host to an aggregate
that is not exported as an availability zone.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1419115/+subscriptions
Follow ups
References