Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1738429

Summary: [SR-IOV] [rhel8.1] Can't enable VFs on rhel8.1 host - driver=igb
Product: [oVirt] vdsm Reporter: Michael Burman <mburman>
Component: CoreAssignee: Bell Levin <blevin>
Status: CLOSED CURRENTRELEASE QA Contact: Michael Burman <mburman>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.40.0CC: bugs, dfediuck, dholler, lsurette, srevivo, ycui
Target Milestone: ovirt-4.4.0Flags: dfediuck: ovirt-4.4?
dfediuck: planning_ack?
dfediuck: devel_ack+
dfediuck: testing_ack?
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-20 19:59:29 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 Michael Burman 2019-08-07 07:09:02 UTC
Description of problem:
[SR-IOV] [rhel8.1] Can't enable VFs on rhel8.1 host - driver=igb

Trying to enable VFs on a rhel8.1 host using RHV d/s 4.4 and vdsm 4.4 and get:

2019-08-07 01:48:49,219-0400 ERROR (jsonrpc/1) [jsonrpc.JsonRpcServer] Internal server error (__init__:350)
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/yajsonrpc/__init__.py", line 345, in _handle_request
    res = method(**params)
  File "/usr/lib/python3.6/site-packages/vdsm/rpc/Bridge.py", line 198, in _dynamicMethod
    result = fn(*methodArgs)
  File "<decorator-gen-436>", line 2, in hostdevChangeNumvfs
  File "/usr/lib/python3.6/site-packages/vdsm/common/api.py", line 50, in method
    ret = func(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/vdsm/API.py", line 1380, in hostdevChangeNumvfs
    hostdev.change_numvfs(deviceName, numvfs)
  File "/usr/lib/python3.6/site-packages/vdsm/common/hostdev.py", line 708, in change_numvfs
    net_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 change_numvfs
  File "/usr/lib64/python3.6/multiprocessing/managers.py", line 772, in _callmethod
    raise convert_to_error(kind, result)
ValueError: can't have unbuffered text I/O
2019-08-07 01:48:49,285-0400 INFO  (jsonrpc/1) [jsonrpc.JsonRpcServer] RPC call Host.hostdevChangeNumvfs failed (error -32603) in 0.11 seconds (__init__:312)

Version-Release number of selected component (if applicable):
RHV 4.4.0-0.1.master.el7
vdsm-4.40.0-720.git619700644.el8ev.x86_64
Red Hat Enterprise Linux release 8.1 Beta (Ootpa)
ProLiant DL170e G6

04:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
        Subsystem: Intel Corporation Ethernet Server Adapter I350-T2
                Product Name: Intel Ethernet Server Adapter I350-T2
                        [V1] Vendor specific: Intel Ethernet Server Adapter I350-T2
        Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
05:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
        Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)

driver=igb driverversion=5.6.0-k

How reproducible:
100%

Steps to Reproduce:
1. Try to enable VF on a rhel8.1 host using 4.4 RHV and vdsm

Actual results:
Fail to enable VF

Expected results:
Should work

Additional info:
I'm not sure if this is a vdsm bug or a rhel8.1 issue with this specific driver or card. Might be not supported on rhel8.1
I will do the same test with 'i40e' driver host

Comment 2 Michael Burman 2019-08-07 08:38:17 UTC
Same issue with 'i40e' driver HW

Comment 3 Dan Kenigsberg 2019-08-07 13:25:31 UTC
As usual, the interesting log is in supervdsm.log

MainProcess|jsonrpc/2::ERROR::2019-08-06 11:42:01,156::supervdsm_server::103::SuperVdsm.ServerCallback::(wrapper) Error in change_numvfs
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/vdsm/supervdsm_server.py", line 101, in wrapper
    res = func(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/vdsm/network/api.py", line 74, in change_numvfs
    sriov.update_numvfs(pci_path, numvfs)
  File "/usr/lib/python3.6/site-packages/vdsm/network/link/sriov.py", line 43, in update_numvfs
    with open(_SYSFS_SRIOV_NUMVFS.format(pci_path), 'w', 0) as f:
ValueError: can't have unbuffered text I/O


seems like a vdsm-side unicode bug.

Comment 4 Michael Burman 2019-10-23 07:55:36 UTC
Verified on vdsm-4.40.0-127.gitc628cce.el8ev.x86_64
Red Hat Enterprise Linux release 8.1 (Ootpa)

Comment 5 Sandro Bonazzola 2020-05-20 19:59:29 UTC
This bugzilla is included in oVirt 4.4.0 release, published on May 20th 2020.

Since the problem described in this bug report should be
resolved in oVirt 4.4.0 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.