compute: Ensure pre-migrating instances are destroyed during init_host
Previously _destroy_evacuated_instances would not remove instances
associated with evacuation migration records in a pre-migrating state.
This could lead to a race between the original source host and the new
destination if the source returned early, calling init_instance during
the evacuation process.
This change now includes pre-migrating migration records when looking
for active evacuations. Additionally the dict of evacuating instances is
then returned to init_host and used to skip running init_instance
against such instances ensuring no race occurs between the two computes.
Closes-bug: #1764883
Change-Id: I379678dfdb2609f12a572d4f99c8e9da4deab803
(cherry picked from commit c4988cdabf311d29cf64af732091068cfabeedaa)
Reviewed: https:/ /review. openstack. org/621200 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=8bba879141d 644b248d246cb2e d196068e20785c
Committed: https:/
Submitter: Zuul
Branch: stable/queens
commit 8bba879141d644b 248d246cb2ed196 068e20785c
Author: Lee Yarwood <email address hidden>
Date: Wed Apr 18 14:35:07 2018 +0100
compute: Ensure pre-migrating instances are destroyed during init_host
Previously _destroy_ evacuated_ instances would not remove instances
associated with evacuation migration records in a pre-migrating state.
This could lead to a race between the original source host and the new
destination if the source returned early, calling init_instance during
the evacuation process.
This change now includes pre-migrating migration records when looking
for active evacuations. Additionally the dict of evacuating instances is
then returned to init_host and used to skip running init_instance
against such instances ensuring no race occurs between the two computes.
Closes-bug: #1764883 f12a572d4f99c8e 9da4deab803 9cf64af73209106 8cfabeedaa)
Change-Id: I379678dfdb2609
(cherry picked from commit c4988cdabf311d2