RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1179412 - nfs options went missing in nfsserver after updating to 3.9.5-12.el6
Summary: nfs options went missing in nfsserver after updating to 3.9.5-12.el6
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: resource-agents
Version: 6.7
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: rc
: ---
Assignee: David Vossel
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard: GSSApproved
Depends On:
Blocks: 1182787
TreeView+ depends on / blocked
 
Reported: 2015-01-06 17:41 UTC by Cedric Buissart
Modified: 2019-07-11 08:30 UTC (History)
8 users (show)

Fixed In Version: resource-agents-3.9.5-20.el6
Doc Type: Bug Fix
Doc Text:
Due to a regression, some NFS options went missing in the nfsserver after updating, and it was impossible to modify the number of the NFS thread. A patch has been applied, and the number is now modifiable.
Clone Of:
: 1182787 (view as bug list)
Environment:
Last Closed: 2015-07-22 06:12:35 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 1329423 0 None None None Never
Red Hat Product Errata RHBA-2015:1280 0 normal SHIPPED_LIVE resource-agents bug fix and enhancement update 2015-07-20 17:49:07 UTC

Description Cedric Buissart 2015-01-06 17:41:09 UTC
Description of problem:

BZ 1091102 seems to have introduce the upstream update 8fd1a9aa26 [1]
This update recreates a /etc/sysconfig/nfs from scratch, and introduce several nfsserver parameters, such as port numbers.

=> The downside is that /etc/sysconfig/nfs may have contained values which were wanted by users, and they are no longer applied.

=> Also, a side effect of this is that /etc/sysconfig/nfs is read by other services, such as rpcgssd, rpcidmapd and rpcsvcgssd. These services do not seem to be managed by nfsserver. I am unsure if they are supported in parallel of nfsserver.

Version-Release number of selected component (if applicable): upstream, 6 and 7

How reproducible: 100%


Steps to Reproduce:
1. Try setting the number of NFS thread

Actual results:
It will always be 8


Expected results:
Modifiable


Additional info:
I could see several ways around :
A) nfsserver to merge its parameters into the existing /etc/sysconfig/nfs
B) an nfsserver parameter that generically sets any variables
C) all /etc/sysconfig/nfs to be added as nfsserver parameter
D) a mix of the above

B) and C) might not be sufficient to help with the  rpcgssd, rpcidmapd and rpcsvcgssd services

I tried to get an exhaustive list of the missing values :
RDMA_PORT
RPCNFSDCOUNT -> can't be set via RPCNFSDARGS
NFSD_V4_GRACE
NFSD_MODULE
LOCKDARG
RQUOTAD  -> quotas can't be disabled anymore
RPCMOUNTDOPTS
STATDARG
RPCRQUOTADOPTS

and for non-NFS services (rpcgssd, rpcidmapd and rpcsvcgssd) :
RPCIDMAPDARGS
SECURE_NFS
RPCGSSDARGS
RPCSVCGSSDARGS
RDMA_PORT


[1] : URL https://github.com/ClusterLabs/resource-agents/commit/8fd1a9aa26

Comment 2 Cedric Buissart 2015-01-06 17:56:41 UTC
For solution A) merging the changes into an existing sysconfig/nfs, we might want to check along these lines :


diff --git a/heartbeat/nfsserver b/heartbeat/nfsserver
index cb8635f..b2da5bc 100755
--- a/heartbeat/nfsserver
+++ b/heartbeat/nfsserver
@@ -391,7 +391,12 @@ set_arg()
 	# only write to the tmp /etc/sysconfig/nfs if sysconfig exists.
 	# otherwise this distro does not support setting these options.
 	if [ -d "/etc/sysconfig" ]; then
-		echo "${key}=\"${value}\"" >> $file
+		# replace if the value exists, append otherwise
+		if grep "^\s*${key}=" $file ; then
+			sed -i "s/\s*${key}=.*$/${key}=\"${value}\"/" $file
+		else
+			echo "${key}=\"${value}\"" >> $file
+		fi
 	elif [ "$requires_sysconfig" = "true" ]; then
 		ocf_log warn "/etc/sysconfig/nfs not found, unable to set port and nfsd args."
 	fi
@@ -404,6 +409,9 @@ set_env_args()
 	local tmpconfig=$(mktemp ${HA_RSCTMP}/nfsserver-tmp-XXXXX)
 	local statd_args
 
+	## Take the $NFS_SYSCONFIG file as our skeleton
+	cp $NFS_SYSCONFIG $tmpconfig
+
 	# nfsd args
 	set_arg "RPCNFSDARGS" "$OCF_RESKEY_nfsd_args" "$tmpconfig" "true"

Comment 3 Cedric Buissart 2015-01-06 17:58:37 UTC
For Solution B) adding a parameter to add generic option, the following might be a start :
parameter example : generic_vars=KEY1=value1,KEY2=value2

diff --git a/heartbeat/nfsserver b/heartbeat/nfsserver
index cb8635f..4237d18 100755
--- a/heartbeat/nfsserver
+++ b/heartbeat/nfsserver
@@ -432,6 +432,14 @@ set_env_args()
                set_arg "RPCRQUOTADOPTS" "-p $OCF_RESKEY_rquotad_port" "$tmpconfig" "true"
        fi
 
+       # Generic variables
+       local IFSbk=$IFS
+       IFS=,
+       for pair in $OCF_RESKEY_generic_vars ; do
+               set_arg ${pair%%=*} ${pair#*=} "$tmpconfig" "true"
+       done
+       IFS=$IFSbk
+
        # override local nfs config. preserve previous local config though.
        if [ -s $tmpconfig ]; then
                cat $NFS_SYSCONFIG | grep -e "$NFS_SYSCONFIG_AUTOGEN_TAG"

Comment 4 David Vossel 2015-01-15 22:20:02 UTC
(In reply to Cedric Buissart from comment #2)
> For solution A) merging the changes into an existing sysconfig/nfs, we might
> want to check along these lines :
> 
> 
> diff --git a/heartbeat/nfsserver b/heartbeat/nfsserver
> index cb8635f..b2da5bc 100755
> --- a/heartbeat/nfsserver
> +++ b/heartbeat/nfsserver
> @@ -391,7 +391,12 @@ set_arg()
>  	# only write to the tmp /etc/sysconfig/nfs if sysconfig exists.
>  	# otherwise this distro does not support setting these options.
>  	if [ -d "/etc/sysconfig" ]; then
> -		echo "${key}=\"${value}\"" >> $file
> +		# replace if the value exists, append otherwise
> +		if grep "^\s*${key}=" $file ; then
> +			sed -i "s/\s*${key}=.*$/${key}=\"${value}\"/" $file
> +		else
> +			echo "${key}=\"${value}\"" >> $file
> +		fi
>  	elif [ "$requires_sysconfig" = "true" ]; then
>  		ocf_log warn "/etc/sysconfig/nfs not found, unable to set port and nfsd
> args."
>  	fi
> @@ -404,6 +409,9 @@ set_env_args()
>  	local tmpconfig=$(mktemp ${HA_RSCTMP}/nfsserver-tmp-XXXXX)
>  	local statd_args
>  
> +	## Take the $NFS_SYSCONFIG file as our skeleton
> +	cp $NFS_SYSCONFIG $tmpconfig
> +
>  	# nfsd args
>  	set_arg "RPCNFSDARGS" "$OCF_RESKEY_nfsd_args" "$tmpconfig" "true"

I'm fine with this one. Do you have a github account? Would you be interested in submitting the pull request for review here, https://github.com/ClusterLabs/resource-agents

-- David

Comment 5 David Vossel 2015-02-20 16:29:16 UTC
Cedric, Has any progress been made to get this patch upstream?

Comment 11 michal novacek 2015-04-15 12:20:15 UTC
I have verified that with resource-agents-3.9.5-20.el6.x86_64 the values
contained in /etc/sysconfig/nfs are kept intact.

[root@bucek-02 ~]# grep -v \# /etc/sysconfig/nfs 
LOCKD_UDPPORT=32769


before the patch resource-agents-3.9.5-19.el6.x86_64
====================================================

[root@bucek-02 x86_64]# OCF_ROOT=/usr/lib/ocf OCF_RESKEY_lockd_tcp_port=32803 \
OCF_RESKEY_nfs_shared_infodir=/mnt/shared/nfs \
/usr/lib/ocf/resource.d/heartbeat/nfsserver start
DEBUG: rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped
# AUTOGENERATED by /usr/lib/ocf/resource.d/heartbeat/nfsserver high availability resource-agent
INFO: Starting NFS server ...
INFO: Starting rpc.statd.
DEBUG: Starting NFS services:  [  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS mountd: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting RPC idmapd: [  OK  ]
INFO: executing sm-notify
INFO: NFS server started

[root@bucek-02 x86_64]# grep -v \# /etc/sysconfig/nfs
STATDARG="--no-notify"
LOCKD_TCPPORT="32803"


with patched version resource-agents-3.9.5-20.el6.x86_64
========================================================

[root@bucek-02 ~]# OCF_ROOT=/usr/lib/ocf OCF_RESKEY_lockd_tcp_port=32803 \
OCF_RESKEY_nfs_shared_infodir=/mnt/shared/nfs \
/usr/lib/ocf/resource.d/heartbeat/nfsserver start
DEBUG: rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped
INFO: Starting NFS server ...
INFO: rpc.statd already up
DEBUG: Starting NFS services:  [  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS mountd: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting RPC idmapd: [  OK  ]
INFO: executing sm-notify
INFO: NFS server started

[root@bucek-02 ~]# grep -v \# /etc/sysconfig/nfs
LOCKD_UDPPORT=32769
STATDARG="--no-notify"
LOCKD_TCPPORT="32803"

Comment 13 errata-xmlrpc 2015-07-22 06:12:35 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://rhn.redhat.com/errata/RHBA-2015-1280.html


Note You need to log in before you can comment on or make changes to this bug.