From 3cf776c49bc60b7f616a4c503a8b10b2d19ad04b Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Sun, 21 Jun 2015 15:07:58 +0200 Subject: nfs: make it possible to disable nfs.mount-rmtab When there are many NFS-clients doing very often mount/unmount actions, the updating of the 'rmtab' can become a bottleneck and cause delays. In these situations, the output of 'showmount' may be less important than the responsiveness of the (un)mounting. By setting 'nfs.mount-rmtab' to the value "/-", the cache file is not updated anymore, and the entries are only kept in memory. Cherry picked from commit 40407afb529f6e5fa2f79e9778c2f527122d75eb: > Cherry picked from commit 331ef6e1a86bfc0a93f8a9dec6ad35c417873849: >> BUG: 1169317 >> Change-Id: I40c4d8d754932f86fb2b1b2588843390464c773d >> Reported-by: Cyril Peponnet >> Signed-off-by: Niels de Vos >> Reviewed-on: http://review.gluster.org/9223 >> Tested-by: Gluster Build System >> Reviewed-by: soumya k >> Reviewed-by: jiffin tony Thottan >> Reviewed-by: Kaleb KEITHLEY > > This change also contains the fixes to the test-case from: >> >> nfs: fix spurious failure in bug-1166862.t >> >> In some environments, "showmount" could return an NFS-client that does >> not start with "1". This would cause the test-case to fail. The check is >> incorrect, the number of lines should get counted instead. >> >> Also moving the test-case to the .../nfs/... subdirectory. >> >> Cherry picked from commit ee9b35a780607daddc2832b9af5ed6bf414aebc0: >> BUG: 1166862 >> Change-Id: Ic03aa8145ca57d78aea01564466e924b03bb302a >> Signed-off-by: Niels de Vos >> Reviewed-on: http://review.gluster.org/10419 >> Tested-by: Gluster Build System >> Reviewed-by: Vijay Bellur >> > > Change-Id: I40c4d8d754932f86fb2b1b2588843390464c773d > BUG: 1215385 > Signed-off-by: Niels de Vos > Reviewed-on: http://review.gluster.org/10379 > Tested-by: NetBSD Build System > Tested-by: Gluster Build System > Reviewed-by: Vijay Bellur GLUSTERD_WORKDIR has been added to tests/include.rc and is not configurable through ./configure like on newer branches. It is not suitable to change the GlusterD working directory in an update for a stable release. Change-Id: I40c4d8d754932f86fb2b1b2588843390464c773d BUG: 1166862 Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/11336 Tested-by: Gluster Build System Reviewed-by: jiffin tony Thottan Reviewed-by: Kaleb KEITHLEY --- tests/bugs/nfs/bug-1166862.t | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 tests/bugs/nfs/bug-1166862.t (limited to 'tests/bugs/nfs/bug-1166862.t') diff --git a/tests/bugs/nfs/bug-1166862.t b/tests/bugs/nfs/bug-1166862.t new file mode 100755 index 00000000000..c8f63d50b0c --- /dev/null +++ b/tests/bugs/nfs/bug-1166862.t @@ -0,0 +1,66 @@ +#!/bin/bash +# +# When nfs.mount-rmtab is disabled, it should not get updated. +# +# Based on: bug-904065.t +# + +# count the lines of a file, return 0 if the file does not exist +function count_lines() +{ + if [ -n "$1" ] + then + $@ 2>/dev/null | wc -l + else + echo 0 + fi +} + + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../nfs.rc +. $(dirname $0)/../../volume.rc + +cleanup + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1 +EXPECT 'Created' volinfo_field $V0 'Status' + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status' + +# glusterfs/nfs needs some time to start up in the background +EXPECT_WITHIN $NFS_EXPORT_TIMEOUT 1 is_nfs_export_available + +# disable the rmtab by settting it to the magic "/-" value +TEST $CLI volume set $V0 nfs.mount-rmtab /- + +# before mounting the rmtab should be empty +EXPECT '0' count_lines cat $GLUSTERD_WORKDIR/nfs/rmtab + +TEST mount_nfs $H0:/$V0 $N0 nolock +EXPECT '0' count_lines cat $GLUSTERD_WORKDIR/nfs/rmtab + +# showmount should list one client +EXPECT '1' count_lines showmount --no-headers $H0 + +# unmount +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 + +# after resetting the option, the rmtab should get updated again +TEST $CLI volume reset $V0 nfs.mount-rmtab + +# before mounting the rmtab should be empty +EXPECT '0' count_lines cat $GLUSTERD_WORKDIR/nfs/rmtab + +TEST mount_nfs $H0:/$V0 $N0 nolock +EXPECT '2' count_lines cat $GLUSTERD_WORKDIR/nfs/rmtab + +# removing a mount +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 +EXPECT '0' count_lines cat $GLUSTERD_WORKDIR/nfs/rmtab + +cleanup -- cgit