Bug 1747295

Summary: nfsconvert: fail with previous /etc/sysconfig/nfs entry RPCNFSDARGS="--rdma"
Product: Red Hat Enterprise Linux 8 Reporter: Yongcheng Yang <yoyang>
Component: nfs-utilsAssignee: Alice Mitchell <ajmitchell>
Status: CLOSED ERRATA QA Contact: Yongcheng Yang <yoyang>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 8.0CC: ajmitchell, orion, steved, swhiteho, xzhou
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nfs-utils-2.3.3-27.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-28 16:51:05 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 Yongcheng Yang 2019-08-30 04:36:31 UTC
Description of problem:
The rpc.nfsd can accept both args "--rdma" (same as -r) and "--rdma=port".
But in rhel8, current nfsconvert.py seemingly require an extra port_number when dealing with "--rdma":
~~~~~~~~
[yoyang@ nfs-utils.rhel8]$ grep rdma nfsconvert.py
LONG_NFSD = ['debug', 'host=', 'port=', 'rdma=', 'nfs-version=', 'no-nfs-version=',
             '-r': (CONF_NFS, 'nfsd', 'rdma', 'nfsrdma'),
             '-R': (CONF_NFS, 'nfsd', 'rdma', '$1'),
             '--rdma': (CONF_NFS, 'nfsd', 'rdma', '$1'),      <<<<
~~~~~~~~

And then fail to convert the previous /etc/sysconfig/nfs setting of RPCNFSDARGS="--rdma"

Btw, there's another rhel8 rdma issue bz1710532 about nfs.conf rdma seetings.
And IMHO we'd better to update the rdma config splitting into 2 lines, e.g.
# rdma=yes
# rdma-port=20049

Version-Release number of selected component (if applicable):
nfs-utils-2.3.3-25.el8

How reproducible:
always easy

Steps to Reproduce:
1. echo 'RPCNFSDARGS="--rdma"' > /etc/sysconfig/nfs
2. systemctl restart nfs-server

Actual results:
[root.0 ~]# vi /etc/sysconfig/nfs
[root.0 ~]# >/etc/nfs.conf
[root.0 ~]# cat /etc/sysconfig/nfs
RPCNFSDARGS="--rdma"
[root.0 ~]# systemctl restart nfs-server
A dependency job for nfs-server.service failed. See 'journalctl -xe' for details.
[root.0 ~]# cat /etc/nfs.conf
[root.0 ~]#
[root.0 ~]# rpm -q nfs-utils
nfs-utils-2.3.3-24.el8.x86_64
[root.0 ~]#



Success results when using "--rdma=port":
[root.0 ~]# cat /etc/sysconfig/nfs
RPCNFSDARGS="--rdma=12334"
[root.0 ~]# systemctl restart nfs-server
[root.0 ~]# cat /etc/nfs.conf
[nfsd]
rdma = 12334
[root.0 ~]#


Additional info:
# rhel7 can consume the setting:
[root~]# vi /etc/sysconfig/nfs
[root~]# cat /etc/sysconfig/nfs
RPCNFSDARGS="--rdma"
[root~]# systemctl restart nfs-server
[root~]# cat /proc/fs/nfsd/portlist | grep -w rdma
rdma 20049
rdma 20049
[root~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.65.el7.x86_64
[root~]#

Comment 1 Alice Mitchell 2019-09-04 10:22:55 UTC
Ah this, I had noticed something similar before, it comes down to a fundamental flaw in pythons getopt handling, it cannot cope with optional arguments, deliberately.  I will see what can be done to work around this issue.

Comment 5 Yongcheng Yang 2019-12-02 05:34:32 UTC
Moving to VERIFIED now.

PASS with nfs-utils-2.3.3-27.el8
https://beaker.engineering.redhat.com/recipes/7560576#task101960368
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[05:22:26 root@ ~~]# cat /etc/sysconfig/nfs
RPCNFSDARGS="--rdma"
[05:22:26 root@ ~~]# systemctl reset-failed
[05:22:26 root@ ~~]# service_nfs restart
Redirecting to /bin/systemctl restart nfs-server.service
# Check configuration converted to /etc/nfs.conf
[05:22:27 root@ ~~]# cat /etc/nfs.conf
[nfsd]
rdma = nfsrdma


FAIL in previous version
https://beaker.engineering.redhat.com/recipes/7501431#task101195084
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[07:39:36 root@ ~~]# cat /etc/sysconfig/nfs
RPCNFSDARGS="--rdma"
[07:39:36 root@ ~~]# systemctl reset-failed
[07:39:36 root@ ~~]# service_nfs restart
Redirecting to /bin/systemctl restart nfs-server.service
A dependency job for nfs-server.service failed. See 'journalctl -xe' for details.
Oct 24 07:39:36 kvm-08-guest02.hv2.lab.eng.bos.redhat.com systemd[1]: nfs-convert.service: Failed with result 'exit-code'.
Oct 24 07:39:36 kvm-08-guest02.hv2.lab.eng.bos.redhat.com systemd[1]: Failed to start Preprocess NFS configuration convertion.

Comment 7 errata-xmlrpc 2020-04-28 16:51:05 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, 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-2020:1832