sriov vf lower ifname must be unique across entire system

Bug #1884651 reported by Chris Winnicki
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Triaged
Low
Unassigned

Bug Description

Brief Description
-----------------
sriov vf lower ifname must be unique across entire system

Adding a VF interface to a parent interface results in an exception during worker unlock if other workers in the system have parent sriov interfaces that are also used by other workers

Severity
--------
Minor, workaround exists

Steps to Reproduce
------------------
Install yow-cgcs-r720-3-7

Provision workers so their interface config resembles (like below) this interface naming convention;
ie: where parent sriov interface names are not globally unique across workers

[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-list compute-0
+--------------------------------------+----------+-----------------+----------+---------+---------------+------------+-------------+---------------------------+
| uuid | name | class | type | vlan id | ports | uses i/f | used by i/f | attributes |
+--------------------------------------+----------+-----------------+----------+---------+---------------+------------+-------------+---------------------------+
| 2e2deb35-2352-4387-893b-cedcae596897 | cluster0 | platform | ethernet | None | [u'enp5s0f1'] | [] | [] | MTU=9000 |
| 4c649308-16ee-4142-b18c-5c7673b5d88d | mgmt0 | platform | ethernet | None | [u'eno2'] | [] | [] | MTU=1500 |
| 8fcfb649-4221-4311-98d9-1184777603b2 | data0 | data | ethernet | None | [u'enp5s0f0'] | [] | [u'data1'] | MTU=9216,accelerated=True |
| a9d22b05-3fcb-447e-af3c-e4bb8041d06e | pthru0 | pci-passthrough | ethernet | None | [u'enp6s0f0'] | [] | [] | MTU=9216 |
| c232d284-3605-495f-868a-8bfddbad0269 | sriov0 | pci-sriov | ethernet | None | [u'enp6s0f1'] | [] | [] | MTU=9216 |
| c38d7ba9-142a-4d95-bd6b-f2e7b3c9c492 | data1 | data | vlan | 11 | [] | [u'data0'] | [] | MTU=1600,accelerated=True |
+--------------------------------------+----------+-----------------+----------+---------+---------------+------------+-------------+---------------------------+
[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-list compute-1
+--------------------------------------+----------+-----------------+----------+---------+---------------+-------------+---------------+---------------------------+
| uuid | name | class | type | vlan id | ports | uses i/f | used by i/f | attributes |
+--------------------------------------+----------+-----------------+----------+---------+---------------+-------------+---------------+---------------------------+
| 1a2ae942-3019-422b-b778-dbd6ed354923 | data0 | data | ethernet | None | [u'enp5s0f0'] | [] | [u'data1'] | MTU=9216,accelerated=True |
| 2c15889e-f805-4d60-a3a6-8652208d382e | sriov1 | pci-sriov | ethernet | None | [u'enp6s0f1'] | [] | [u'childvf1'] | MTU=1500 |
| 3caace95-c162-4c05-ad8e-72d6c749db1f | data1 | data | vlan | 11 | [] | [u'data0'] | [] | MTU=1600,accelerated=True |
| 75b737da-b688-4104-9fd6-2f0040f9f1a1 | cluster0 | platform | ethernet | None | [u'enp5s0f1'] | [] | [] | MTU=9000 |
| 7cb7c1a8-3a36-4ddb-82c3-cff0246f2573 | mgmt0 | platform | ethernet | None | [u'eno2'] | [] | [] | MTU=1500 |
| ab6c45c9-10ad-4690-a760-43e1b96d582f | childvf1 | pci-sriov | vf | None | [] | [u'sriov1'] | [] | MTU=1500 |
| b134a8e1-2d0c-4805-a662-e6be9fdaf87f | pthru0 | pci-passthrough | ethernet | None | [u'enp6s0f0'] | [] | [] | MTU=9216 |
+--------------------------------------+----------+-----------------+----------+---------+---------------+-------------+---------------+---------------------------+
[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-list compute-2
+--------------------------------------+----------+-----------------+----------+---------+---------------+------------+-------------+---------------------------+
| uuid | name | class | type | vlan id | ports | uses i/f | used by i/f | attributes |
+--------------------------------------+----------+-----------------+----------+---------+---------------+------------+-------------+---------------------------+
| 157c70a0-ec2c-4439-a25c-4f35d84ab274 | data0 | data | ethernet | None | [u'enp5s0f0'] | [] | [u'data1'] | MTU=9216,accelerated=True |
| 226cf243-be89-4dc9-9a8d-ff8786ee0725 | cluster0 | platform | ethernet | None | [u'enp5s0f1'] | [] | [] | MTU=9000 |
| 2396b127-d0d1-43b8-8208-86451228e75b | mgmt0 | platform | ethernet | None | [u'eno2'] | [] | [] | MTU=1500 |
| 609f22a4-6b1d-4419-ae2b-13e82e020152 | pthru0 | pci-passthrough | ethernet | None | [u'enp6s0f0'] | [] | [] | MTU=9216 |
| 67bc6215-7c04-4e38-8ff0-3c23be1c783f | sriov0 | pci-sriov | ethernet | None | [u'enp6s0f1'] | [] | [] | MTU=9216 |
| a70f5f84-c88a-40f8-9661-2698aebc1627 | data1 | data | vlan | 11 | [] | [u'data0'] | [] | MTU=1600,accelerated=True |
+--------------------------------------+----------+-----------------+----------+---------+---------------+------------+-------------+---------------------------+

* add a VF interface to the parent sriov interface:
system host-if-add -c pci-sriov compute-1 childvf1 vf sriov0 -N 2 --vf-driver netdevice

* attempt to unlock worker compute-1

Expected Behavior
------------------
worker host should unlock successfully

Actual Behavior
----------------
system host-if-add -c pci-sriov compute-1 childvf1 vf sriov0 -N 2 --vf-driver netdevice
and attempting to unlock compute-1:

[sysadmin@controller-0 ~(keystone_admin)]$ system host-unlock compute-1
Remote error: InvalidParameterValue Multiple entries found for interface sriov0
[u'Traceback (most recent call last):\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/openstack/common/rpc/amqp.py", line 437, in _process_data\n **args)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/openstack/common/rpc/dispatcher.py", line 172, in dispatch\n result = getattr(proxyobj, method)(ctxt, **kwargs)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/conductor/manager.py", line 11190, in evaluate_app_reapply\n armada_format=True, armada_chart_info=app.charts, combined=True)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/helm/helm.py", line 49, in _wrapper\n return func(self, *args, **kwargs)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/helm/helm.py", line 643, in generate_helm_application_overrides\n cnamespace)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/helm/helm.py", line 406, in _get_helm_application_overrides\n cnamespace)})\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/helm/helm.py", line 311, in _get_helm_chart_overrides\n cnamespace))\n', u' File "/opt/platform/helm/20.06/stx-openstack/1.0-1-centos-stable-versioned/plugins/k8sapp_openstack_avs/helm/neutron.py", line 29, in get_overrides\n overrides = super(NeutronAVSHelm, self).get_overrides(namespace)\n', u' File "/opt/platform/helm/20.06/stx-openstack/1.0-1-centos-stable-versioned/plugins/k8sapp_openstack/helm/neutron.py", line 45, in get_overrides\n \'hosts\': self._get_per_host_overrides()\n', u' File "/opt/platform/helm/20.06/stx-openstack/1.0-1-centos-stable-versioned/plugins/k8sapp_openstack/helm/neutron.py", line 98, in _get_per_host_overrides\n \'sriov_agent\': self._get_dynamic_sriov_agent_config(host),\n', u' File "/opt/platform/helm/20.06/stx-openstack/1.0-1-centos-stable-versioned/plugins/k8sapp_openstack/helm/neutron.py", line 205, in _get_dynamic_sriov_agent_config\n port_name = self._get_interface_port_name(iface)\n', u' File "/opt/platform/helm/20.06/stx-openstack/1.0-1-centos-stable-versioned/plugins/k8sapp_openstack/helm/neutron.py", line 277, in _get_interface_port_name\n lower_iface = self.dbapi.iinterface_get(iface[\'uses\'][0])\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/objects/__init__.py", line 111, in wrapper\n result = fn(*args, **kwargs)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/db/sqlalchemy/api.py", line 2280, in iinterface_get\n return self._iinterface_get(iinterface_id, ihost)\n', u' File "/usr/lib64/python2.7/site-packages/sysinv/db/sqlalchemy/api.py", line 2274, in _iinterface_get\n err="Multiple entries found for interface %s" % iinterface_id)\n', u'InvalidParameterValue: Multiple entries found for interface sriov0\n'].
[sysadmin@controller-0 ~(keystone_admin)]$

Reproducibility
---------------
100% (3 out of 3)

System Configuration
--------------------
Simplex
wolfpass-15

Branch/Pull Time/Commit
-----------------------
BUILD_ID="2020-06-17_20-00-00"

Last Pass
---------
n/a

Timestamp/Logs
--------------
2020-06-22T18:56:06.000
https://files.starlingx.kube.cengn.ca/download_file/245

Test Activity
-------------
Regression Testing

Workaround
----------
Name parent sriov interfaces to be globally unique

description: updated
Ghada Khalil (gkhalil)
description: updated
Revision history for this message
Ghada Khalil (gkhalil) wrote :

Low priority - This is day 1 behavior and can be easily worked around by using unique names

tags: added: stx.networking
Changed in starlingx:
status: New → Triaged
importance: Undecided → Low
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.