** Description changed:
- it was working in queens but fails in train. nova compute at the target
- aborts with the exception:
+ [Impact]
+
+ Live migration of instances in an environment that uses neutron backends
+ that do not support multiple port bindings will fail with error
+ 'NotImplemented', effectively rendering live-migration inoperable in
+ these environments.
+
+ This is fixed by first checking to ensure the backend supports the
+ multiple port bindings before providing the port bindings.
+
+ [Test Plan]
+
+ 1. deploy a Train/Ussuri OpenStack cloud w/ at least 2 compute nodes
+ using an SDN that does not support multiple port bindings (e.g.
+ opencontrail).
+
+ 2. Attempt to perform a live migration of an instance.
+
+ 3. Observe that the live migration will fail without this fix due to the
+ trace below (NotImplementedError: Cannot load 'vif_type' in the base
+ class), and should succeed with this fix.
+
+
+ [Where problems could occur]
+
+ This affects the live migration code, so likely problems would arise in
+ this area. Specifically, the check introduced is guarding information
+ provided for instances using SR-IOV indirect migration.
+
+ Regressions would likely occur in the form of live migration errors
+ around features that rely on the multiple port bindings (e.g. the SR-
+ IOV) and not the more generic/common use case. Errors may be seen in
+ standard network providers that are included with distro packaging, but
+ may also be seen in scenarios where proprietary SDNs are used.
+
+
+ [Original Description]
+ it was working in queens but fails in train. nova compute at the target
aborts with the exception:
Traceback (most recent call last):
- File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line
165, in _process_incoming
- res = self.dispatcher.dispatch(message)
- File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py",
line 274, in dispatch
- return self._do_dispatch(endpoint, method, ctxt, args)
- File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py",
line 194, in _do_dispatch
- result = func(ctxt, **new_args)
- File "/usr/lib/python2.7/site-packages/nova/exception_wrapper.py", line 79,
in wrapped
- function_name, call_dict, binary, tb)
- File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
in __exit__
- self.force_reraise()
- File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
in force_reraise
- six.reraise(self.type_, self.value, self.tb)
- File "/usr/lib/python2.7/site-packages/nova/exception_wrapper.py", line 69,
in wrapped
- return f(self, context, *args, **kw)
- File "/usr/lib/python2.7/site-packages/nova/compute/utils.py", line 1372,
in decorated_function
- return function(self, context, *args, **kwargs)
- File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 219,
in decorated_function
- kwargs['instance'], e, sys.exc_info())
- File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
in __exit__ self.force_reraise()
- File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
in force_reraise
- six.reraise(self.type_, self.value, self.tb) File
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 207, in
decorated_function
- return function(self, context, *args, **kwargs)
- File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7007,
in pre_live_migration
- bdm.save()
- File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
in __exit__
- self.force_reraise()
- File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
in force_reraise
- six.reraise(self.type_, self.value, self.tb)
- File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6972,
in pre_live_migration
- migrate_data)
- File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line
9190, in pre_live_migration
- instance, network_info, migrate_data)
- File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line
9071, in _pre_live_migration_plug_vifs
- vif_plug_nw_info.append(migrate_vif.get_dest_vif())
- File "/usr/lib/python2.7/site-packages/nova/objects/migrate_data.py", line
90, in get_dest_vif
- vif['type'] = self.vif_type
- File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line
67, in getter
- self.obj_load_attr(name)
- File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line
603, in obj_load_attr
- _("Cannot load '%s' in the base class") % attrname)
+ File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line
165, in _process_incoming
+ res = self.dispatcher.dispatch(message)
+ File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py",
line 274, in dispatch
+ return self._do_dispatch(endpoint, method, ctxt, args)
+ File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py",
line 194, in _do_dispatch
+ result = func(ctxt, **new_args)
+ File "/usr/lib/python2.7/site-packages/nova/exception_wrapper.py", line 79,
in wrapped
+ function_name, call_dict, binary, tb)
+ File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
in __exit__
+ self.force_reraise()
+ File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
in force_reraise
+ six.reraise(self.type_, self.value, self.tb)
+ File "/usr/lib/python2.7/site-packages/nova/exception_wrapper.py", line 69,
in wrapped
+ return f(self, context, *args, **kw)
+ File "/usr/lib/python2.7/site-packages/nova/compute/utils.py", line 1372,
in decorated_function
+ return function(self, context, *args, **kwargs)
+ File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 219,
in decorated_function
+ kwargs['instance'], e, sys.exc_info())
+ File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
in __exit__ self.force_reraise()
+ File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
in force_reraise
+ six.reraise(self.type_, self.value, self.tb) File
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 207, in
decorated_function
+ return function(self, context, *args, **kwargs)
+ File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 7007,
in pre_live_migration
+ bdm.save()
+ File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220,
in __exit__
+ self.force_reraise()
+ File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196,
in force_reraise
+ six.reraise(self.type_, self.value, self.tb)
+ File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6972,
in pre_live_migration
+ migrate_data)
+ File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line
9190, in pre_live_migration
+ instance, network_info, migrate_data)
+ File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line
9071, in _pre_live_migration_plug_vifs
+ vif_plug_nw_info.append(migrate_vif.get_dest_vif())
+ File "/usr/lib/python2.7/site-packages/nova/objects/migrate_data.py", line
90, in get_dest_vif
+ vif['type'] = self.vif_type
+ File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line
67, in getter
+ self.obj_load_attr(name)
+ File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line
603, in obj_load_attr
+ _("Cannot load '%s' in the base class") % attrname)
NotImplementedError: Cannot load 'vif_type' in the base class
-
steps to reproduce:
- train centos 7 based deployment: 1 controller, 2 computes, libvirt +
qemu-kvm, ceph shared storage, neutron with contrail vrouter virtual network;
- create and start a vm;
- live migrate it between computes.
expected result: vm migrates successfully.
-
rpm -qa | grep nova:
python2-novaclient-15.1.1-1.el7.noarch
openstack-nova-common-20.3.0-1.el7.noarch
python2-nova-20.3.0-1.el7.noarch
openstack-nova-compute-20.3.0-1.el7.noarch
** Also affects: cloud-archive
Importance: Undecided
Status: New
** Also affects: cloud-archive/victoria
Importance: Undecided
Status: New
** Also affects: cloud-archive/train
Importance: Undecided
Status: New
** Also affects: cloud-archive/ussuri
Importance: Undecided
Status: New
** Changed in: cloud-archive/victoria
Status: New => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1888395
Title:
live migration of a vm using the single port binding work flow is
broken in train as a result of the introduction of sriov live
migration
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1888395/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs