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.
Reviewed: https:/ /review. openstack. org/562284 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=c4988cdabf3 11d29cf64af7320 91068cfabeedaa
Committed: https:/
Submitter: Zuul
Branch: master
commit c4988cdabf311d2 9cf64af73209106 8cfabeedaa
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
Change-Id: I379678dfdb2609