Bug 1938675

Summary: cannot reduce amounts of VF if VF instances were activated
Product: Red Hat Enterprise Linux 8 Reporter: Mingyu Shi <mshi>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: low Docs Contact:
Priority: low    
Version: 8.4CC: ferferna, fge, jiji, jishi, network-qe, till
Target Milestone: rcKeywords: Regression, Triaged
Target Release: ---Flags: mshi: needinfo+
pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nmstate-1.1.0-0.6.alpha6.el8 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 17:43:40 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:
Attachments:
Description Flags
nmstate.log none

Description Mingyu Shi 2021-03-15 07:37:11 UTC
Created attachment 1763321 [details]
nmstate.log

Description of problem:
Cannot reduce amounts of VF if VF instances were activated. 

Version-Release number of selected component (if applicable):
nmstate-1.0.2-5.el8.noarch
nispor-1.0.1-4.el8.x86_64
NetworkManager-1.30.0-2.el8.x86_64
Linux hp-dl388g10-01.rhts.eng.pek2.redhat.com 4.18.0-293.el8.x86_64 #1 SMP Mon Mar 1 10:04:09 EST 2021 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:
100%

Steps to Reproduce:
cat << EOF > sr-iov_eno6.yaml 
---
interfaces:
- name: eno6
  state: up
  ethernet:
    sr-iov:
      total-vfs: 7
EOF
nmstatectl set sr-iov_eno6.yaml
#bring the VF instances up:
nmstatectl show eno6v* | sed 's/state: down/state: up/g' | nmstatectl set -
#reduce vf numbers to 6:
sed 's/7/6/' sr-iov_eno6.yaml | nmstatectl set -

Actual results:
Failed

Expected results:
No failure

Additional info:
This worked well with nmstate-1.0.2-1.el8.noarch
The attachment contains success on 1.0.2-1, and failure on 1.0.2-5

Comment 2 Gris Ge 2021-06-23 15:33:22 UTC
Pre-test could be done via `sudo dnf copr enable packit/nmstate-nmstate-1652`

Comment 5 Mingyu Shi 2021-07-13 09:38:03 UTC
Versions:
nmstate-1.1.0-0.7.alpha7.el8.noarch
nispor-1.1.1-1.el8.x86_64
NetworkManager-1.32.2-1.el8.x86_64
Linux dell-per740-79.rhts.eng.pek2.redhat.com 4.18.0-321.el8.x86_64 #1 SMP Mon Jul 5 14:18:50 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

Still failed, at least on an i40e driver
# ethtool -i ens1f0
driver: i40e
version: 4.18.0-321.el8.x86_64
firmware-version: 7.10 0x800075df 19.5.12
expansion-rom-version: 
bus-info: 0000:3b:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

Reduce VFs from 64 to 63, raise:
2021-07-13 17:32:23,993 root         ERROR    Interface /org/freedesktop/NetworkManager/Devices/912 rollback failed
2021-07-13 17:32:23,993 root         ERROR    Interface /org/freedesktop/NetworkManager/Devices/927 rollback failed
Traceback (most recent call last):
  File "/usr/bin/nmstatectl", line 11, in <module>
    load_entry_point('nmstate==1.1.0', 'console_scripts', 'nmstatectl')()
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 74, in main
    return args.func(args)
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 336, in set
    return apply(args)
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 353, in apply
    args.save_to_disk,
  File "/usr/lib/python3.6/site-packages/nmstatectl/nmstatectl.py", line 417, in apply_state
    save_to_disk=save_to_disk,
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 90, in apply
    _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 123, in _apply_ifaces_state
    plugin.apply_changes(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/plugin.py", line 233, in apply_changes
    NmProfiles(self.context).apply_config(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/profiles.py", line 98, in apply_config
    self._ctx.wait_all_finish()
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/context.py", line 217, in wait_all_finish
    raise tmp_error
libnmstate.error.NmstateLibnmError: Activate profile uuid:b60faeb3-9814-4b4b-aac6-c665e1a07f7a iface:ens1f0 type: ethernet failed: reason=<enum NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED of type NM.ActiveConnectionStateReason><enum NM_DEVICE_STATE_REASON_SRIOV_CONFIGURATION_FAILED of type NM.DeviceStateReason>

Comment 10 Mingyu Shi 2021-08-03 09:32:11 UTC
driver: ixgbe
version: 4.18.0-313.el8.test.x86_64
firmware-version: 0x800007f4, 17.5.10
expansion-rom-version: 
bus-info: 0000:01:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

If set total-vfs to 8 at the beginning, and in the end reduce it to 7, it works well
However, if set total-vfs to 63(maximum) at the beginning, and in the end reduce it to 62, it fails

But this could be another problem, the issue described in #comment0 has been fixed, thanks to Fernando's investigation.
Mark it as VERIFIED and I will do some test about the new issue.

Comment 12 errata-xmlrpc 2021-11-09 17:43:40 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 (nmstate bug fix and enhancement update), 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/RHBA-2021:4157