The following 2 scenarios could result in an instance with incorrect
port binding and cause subsequent rebuilds to fail.
If an evacuation of an instance fails part way through, after the point
where we reassign the port binding to the new host but before we change
the instance host, we end up with the ports assigned to the wrong host.
This change adds a check to determine if there's any port binding host
mismatches and if so trigger setup of instance network.
During recovery of failed hosts, neutron could get overwhelmed and lose
messages, for example when active controller was powered-off in the
middle of instance evacuations. In this case the vif_type was set to
'binding_failed' or 'unbound'. We subsequently hit "Unsupported VIF
type" exception during instance hard_reboot or rebuild, leaving the
instance unrecoverable.
This commit changes _heal_instance_info_cache periodic task to update
port binding if evacuation fails due to above errors so that the
instance can be recovered later.
Closes-Bug: #1659062
Related-Bug: #1784579
Co-Authored-By: Gerry Kopec <email address hidden>
Co-Authored-By: Jim Gauld <email address hidden>
Change-Id: I75fd15ac2a29e420c09499f2c41d11259ca811ae
Signed-off-by: Jack Ding <email address hidden>
Reviewed: https:/ /review. openstack. org/603844 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=54263503488 2e1b6897e1935f0 9d6feb6e77d1ce
Committed: https:/
Submitter: Zuul
Branch: master
commit 542635034882e1b 6897e1935f09d6f eb6e77d1ce
Author: Jack Ding <email address hidden>
Date: Wed Sep 19 11:54:44 2018 -0400
Correct instance port binding for rebuilds
The following 2 scenarios could result in an instance with incorrect
port binding and cause subsequent rebuilds to fail.
If an evacuation of an instance fails part way through, after the point
where we reassign the port binding to the new host but before we change
the instance host, we end up with the ports assigned to the wrong host.
This change adds a check to determine if there's any port binding host
mismatches and if so trigger setup of instance network.
During recovery of failed hosts, neutron could get overwhelmed and lose failed' or 'unbound'. We subsequently hit "Unsupported VIF
messages, for example when active controller was powered-off in the
middle of instance evacuations. In this case the vif_type was set to
'binding_
type" exception during instance hard_reboot or rebuild, leaving the
instance unrecoverable.
This commit changes _heal_instance_ info_cache periodic task to update
port binding if evacuation fails due to above errors so that the
instance can be recovered later.
Closes-Bug: #1659062
Related-Bug: #1784579
Co-Authored-By: Gerry Kopec <email address hidden> 20c09499f2c41d1 1259ca811ae
Co-Authored-By: Jim Gauld <email address hidden>
Change-Id: I75fd15ac2a29e4
Signed-off-by: Jack Ding <email address hidden>