Bug 1882400

Summary: [OSP16.1][FFU]During FFU new vms with SRIOV ports cannot be created
Product: Red Hat OpenStack Reporter: Candido Campos <ccamposr>
Component: openstack-tripleo-heat-templatesAssignee: Lukas Bezdicka <lbezdick>
Status: CLOSED ERRATA QA Contact: Candido Campos <ccamposr>
Severity: medium Docs Contact:
Priority: high    
Version: 16.1 (Train)CC: amuller, cfields, chrisw, fpantano, jpretori, lbezdick, mburns, ralonsoh, scohen
Target Milestone: z3Keywords: Triaged
Target Release: 16.1 (Train on RHEL 8.2)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-11.3.2-1.20200914170164.el8ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-12-15 18:36:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Candido Campos 2020-09-24 13:28:49 UTC
Description of problem:
During FFU new vms with SRIOV ports cannot be created.

Controllers in 0sp16.1 cannot configure new ports in computes Osp13 due to this feature:

https://bugs.launchpad.net/neutron/+bug/1580880


https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/mech_sriov/agent/sriov_nic_agent.py#L337

...

    def treat_devices_added_updated(self, devices_info):
        try:
            macs_list = set([device_info[0] for device_info in devices_info])
            devices_details_list = self.plugin_rpc.get_devices_details_list(
                self.context, macs_list, self.agent_id, self.conf.host)
        except Exception as e:
            LOG.debug("Unable to get port details for devices "
                      "with MAC addresses %(devices)s: %(e)s",
                      {'devices': macs_list, 'e': e})
            # resync is needed
            return True

        devices_up = set()
        devices_down = set()
        resync = False
        for device_details in devices_details_list:
            device = device_details['device']
            LOG.debug("Port with MAC address %s is added", device)

            if 'port_id' in device_details:
                LOG.info("Port %(device)s updated. Details: %(details)s",
                         {'device': device, 'details': device_details})
                port_id = device_details['port_id']
                profile = device_details['profile']
                spoofcheck = device_details.get('port_security_enabled', True)
                if self.treat_device(
                        device,
                        profile.get('pci_slot'),
                        device_details['admin_state_up'],
                        spoofcheck,
                        device_details['propagate_uplink_status']):
                    if device_details['admin_state_up']:
                        devices_up.add(device)
                    else:
                        devices_down.add(device)
                else:
                    resync = True
                self._update_network_ports(device_details['network_id'],
                                           port_id,
                                           (device, profile.get('pci_slot')))
                self.ext_manager.handle_port(self.context, device_details)


The function  _get_device_details has changed:

...

020-09-24 00:11:50.858 31268 INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [req-3f246188-d8f7-43b8-b731-9948e4d50557 - - - - -] Device with MAC 00:00:00:00:00:00 not defined on plugin



Version-Release number of selected component (if applicable):

(overcloud) [stack@undercloud-0 ~]$ cat core_puddle_version 
RHOS-16.1-RHEL-8-20200917.n.3(overcloud) [stack@undercloud-0 ~]$

How reproducible:

Execute FFu 13 --->16.1

And after first controller ffu is completed, try to create a vm.

Actual results:
Vm creation fails

Expected results:

Vm is created or document the limitation

Comment 21 errata-xmlrpc 2020-12-15 18:36:58 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Red Hat OpenStack Platform 16.1.3 bug fix and enhancement advisory), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2020:5413