Bug 1949048

Summary: unable to unplug vNIC based port-mirroring from running VM
Product: [oVirt] vdsm Reporter: Guy <gafik>
Component: CoreAssignee: Ales Musil <amusil>
Status: CLOSED CURRENTRELEASE QA Contact: Guy <gafik>
Severity: urgent Docs Contact:
Priority: high    
Version: 4.40.60.3CC: bugs, mburman, mperina
Target Milestone: ovirt-4.4.6Keywords: AutomationBlocker, Regression, TestBlocker
Target Release: 4.40.60.4Flags: pm-rhel: ovirt-4.4+
pm-rhel: blocker?
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: vdsm-4.40.60.4 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-05 05:36:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Guy 2021-04-13 10:23:25 UTC
Description of problem:

given a running VM with two virtual NICs based on port-mirroring vNIC profile, 
its impossible to unplug them ending in this error in the UI:

Error while executing action Edit VM Interface properties: General Exception

VDSM log shows the following traceback:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/vdsm/common/api.py", line 124, in method
    ret = func(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/vdsm/API.py", line 301, in destroy
    res = self.vm.destroy(gracefulAttempts)
  File "/usr/lib/python3.6/site-packages/vdsm/virt/vm.py", line 5169, in destroy
    result = self.doDestroy(gracefulAttempts, reason)
  File "/usr/lib/python3.6/site-packages/vdsm/virt/vm.py", line 5188, in doDestroy
    return self.releaseVm(gracefulAttempts)
  File "/usr/lib/python3.6/site-packages/vdsm/virt/vm.py", line 5070, in releaseVm
    nic.name)
  File "/usr/lib/python3.6/site-packages/vdsm/common/supervdsm.py", line 56, in __call__
    return callMethod()
  File "/usr/lib/python3.6/site-packages/vdsm/common/supervdsm.py", line 54, in <lambda>
    **kwargs)
  File "<string>", line 2, in unsetPortMirroring
  File "/usr/lib64/python3.6/multiprocessing/managers.py", line 772, in _callmethod
    raise convert_to_error(kind, result)
vdsm.network.tc._parser.TCParseError: Found 0, expected ('qdisc', 'class', 'filter')


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

vdsm-4.40.60.3-1.el8ev.x86_64


How reproducible:

always 

Steps to Reproduce:
1. create a network
2. attach network to one of the hosts.
3. start the VM.
4. create a vNIC profile based on port-mirroring for network.
5. create 2 VNICs with the port-mirroring vNIC profile for that VM.
6. try to unplug any of those 2 vNICs.
7. UI gives error: Error while executing action Edit VM Interface properties: General Exception

Actual results:

unable to unplug a vNIC based on port-mirroring.


Expected results:

vNIC is unplugged successfully.

Comment 3 Ales Musil 2021-04-13 12:59:37 UTC
Found the root cause. For some reason tc output format has changed between el8.3 and el8.4. 

It produces only "/n" instead of " /n" for some output lines. 
Patch fixing should be available soon.

Comment 4 RHEL Program Management 2021-04-13 13:04:54 UTC
This bug report has Keywords: Regression or TestBlocker.
Since no regressions or test blockers are allowed between releases, it is also being identified as a blocker for this release. Please resolve ASAP.

Comment 5 Guy 2021-04-20 09:16:24 UTC
Verified in vdsm-4.40.60.4-1.el8ev.x86_64

Comment 6 Sandro Bonazzola 2021-05-05 05:36:23 UTC
This bugzilla is included in oVirt 4.4.6 release, published on May 4th 2021.

Since the problem described in this bug report should be resolved in oVirt 4.4.6 release, it has been closed with a resolution of CURRENT RELEASE.

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