Reschedule after the late affinity check fails with "'NoneType' object is not iterable"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| OpenStack Compute (nova) |
High
|
melanie witt | ||
| Newton |
High
|
Matt Riedemann | ||
| Ocata |
High
|
Matt Riedemann | ||
| Pike |
High
|
Matt Riedemann |
Bug Description
Ran into this while hacking on something locally and running the server groups functional tests:
=======
Failed 1 tests - output below:
=======
nova.tests.
-------
Captured pythonlogging:
~~~~~~~
19:45:29,525 ERROR [nova.scheduler
19:45:29,526 WARNING [nova.scheduler
19:45:29,527 WARNING [nova.scheduler
Two instances are being booted simultaneously and both land on the same host, so the second one will fail the late affinity check and raise a RescheduledExce
In the past, code [2] was added 'group_members' to filter_properties to handle affinity and a more recent change removed most of it but missed 'group_members' [3]. So nothing is ever setting filter_
[1] https:/
[2] https:/
[3] https:/
Matt Riedemann (mriedem) wrote : | #1 |
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → High |
tags: | added: affinity requestspec reschedule server-groups |
Changed in nova: | |
assignee: | nobody → melanie witt (melwitt) |
Fix proposed to branch: master
Review: https:/
Changed in nova: | |
status: | Confirmed → In Progress |
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: master
commit 9d6632a67d91fb3
Author: melanie witt <email address hidden>
Date: Wed Sep 27 17:27:56 2017 +0000
Set group_members when converting to legacy request spec
In Pike we converted the affinity filter code to use the RequestSpec
object instead of legacy dicts. The filter used to populate server
group info in the filter_properties and the conversion removed that.
However, in the conductor, we are still converting RequestSpec back
and forth between object and primitive, and there is a mismatch
between the keys being set/get in filter_properties. So during a
reschedule with a server group, we hit an exception
"'NoneType' object is not iterable" in the RequestSpec.
method and the reschedule fails.
This adds 'group_members' to the _to_legacy_
the key.
Closes-Bug: #1719730
Change-Id: Icb418f2be575bb
Changed in nova: | |
status: | In Progress → Fix Released |
Fix proposed to branch: stable/pike
Review: https:/
Reviewed: https:/
Committed: https:/
Submitter: Jenkins
Branch: stable/pike
commit d288132dca7cc76
Author: melanie witt <email address hidden>
Date: Wed Sep 27 17:27:56 2017 +0000
Set group_members when converting to legacy request spec
In Pike we converted the affinity filter code to use the RequestSpec
object instead of legacy dicts. The filter used to populate server
group info in the filter_properties and the conversion removed that.
However, in the conductor, we are still converting RequestSpec back
and forth between object and primitive, and there is a mismatch
between the keys being set/get in filter_properties. So during a
reschedule with a server group, we hit an exception
"'NoneType' object is not iterable" in the RequestSpec.
method and the reschedule fails.
This adds 'group_members' to the _to_legacy_
the key.
Closes-Bug: #1719730
Change-Id: Icb418f2be575bb
(cherry picked from commit 9d6632a67d91fb3
This issue was fixed in the openstack/nova 17.0.0.0b1 development milestone.
This issue was fixed in the openstack/nova 16.0.2 release.
Fix proposed to branch: stable/ocata
Review: https:/
Matt Riedemann (mriedem) wrote : | #9 |
Bug 1675676 has the same failure but from a different scenario, and goes back to at least Newton.
Fix proposed to branch: stable/newton
Review: https:/
Reviewed: https:/
Committed: https:/
Submitter: Zuul
Branch: stable/ocata
commit 96ad6043bbacf47
Author: melanie witt <email address hidden>
Date: Wed Sep 27 17:27:56 2017 +0000
Set group_members when converting to legacy request spec
In Pike we converted the affinity filter code to use the RequestSpec
object instead of legacy dicts. The filter used to populate server
group info in the filter_properties and the conversion removed that.
However, in the conductor, we are still converting RequestSpec back
and forth between object and primitive, and there is a mismatch
between the keys being set/get in filter_properties. So during a
reschedule with a server group, we hit an exception
"'NoneType' object is not iterable" in the RequestSpec.
method and the reschedule fails.
This adds 'group_members' to the _to_legacy_
the key.
Closes-Bug: #1719730
NOTE(mriedem): In Ocata, the DiskFilter is still enabled by default
even though the FilterScheduler is using Placement and filtering
resources by DISK_GB inventory, which makes the functional test fail.
So in this backport, the enabled_filters are specifically set without
the RamFilter and DiskFilter since Placement handles those.
Change-Id: Icb418f2be575bb
(cherry picked from commit 9d6632a67d91fb3
(cherry picked from commit d288132dca7cc76
This issue was fixed in the openstack/nova 15.0.8 release.
Reviewed: https:/
Committed: https:/
Submitter: Zuul
Branch: stable/newton
commit 6b7b4aa4a5d19a6
Author: melanie witt <email address hidden>
Date: Wed Sep 27 17:27:56 2017 +0000
Set group_members when converting to legacy request spec
In Pike we converted the affinity filter code to use the RequestSpec
object instead of legacy dicts. The filter used to populate server
group info in the filter_properties and the conversion removed that.
However, in the conductor, we are still converting RequestSpec back
and forth between object and primitive, and there is a mismatch
between the keys being set/get in filter_properties. So during a
reschedule with a server group, we hit an exception
"'NoneType' object is not iterable" in the RequestSpec.
method and the reschedule fails.
This adds 'group_members' to the _to_legacy_
the key.
Closes-Bug: #1719730
NOTE(mriedem): There are a few changes for Newton because of config
option renames in Ocata and the PlacementFixture didn't exist in
Newton, and we have to be explicit about running Neutron.
Depends-On: I344d8fdded9b7d
Change-Id: Icb418f2be575bb
(cherry picked from commit 9d6632a67d91fb3
(cherry picked from commit d288132dca7cc76
(cherry picked from commit 2e25f689a910e1a
This issue was fixed in the openstack/nova 14.0.10 release.
Since https:/ /review. openstack. org/#/c/ 469037 was made in pike, this is a regression in the pike release.