Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 500006

Summary: net-fs/nfs-utils-1.2.9 - OPTS_NFSD settings from /etc/conf.d/nfs overwritten during /etc/init.d/nfs execution
Product: Gentoo Linux Reporter: Toralf Förster <toralf>
Component: Current packagesAssignee: Network Filesystems <net-fs>
Status: RESOLVED FIXED    
Severity: normal CC: barzog, bugzie
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Toralf Förster gentoo-dev 2014-02-01 19:04:31 UTC
There's a flaw in starting the nfs service which (vanilla kernel 3.12.9 - fwiw) reverts any attempt set set NFSvX versions.

I added 2 debug lines in the /etc/init.d/nfs script to  show the issue :
       start_it mountd ${mountd} ${OPTS_RPC_MOUNTD}
        cat /proc/fs/nfsd/versions                      <------------
        start_it daemon ${nfsd} ${OPTS_RPC_NFSD}
        cat /proc/fs/nfsd/versions                      <------------
        [ -x "${smnotify}" ] && start_it smnotify ${smnotify} $


They do give during start of the nfs service :

 * Exporting NFS directories ...                         [ ok ]
 * Starting NFS mountd ...                               [ ok ]
+2 +3 +4 +4.1 +4.2
 * Starting NFS daemon ...                               [ ok ]
-2 +3 +4 +4.1 -4.2
 * Starting NFS smnotify ...                             [ ok ]

n22 ~ # emerge --info net-fs/nfs-utils
Portage 2.2.7 (default/linux/x86/13.0/desktop/kde, gcc-4.7.3, glibc-2.17, 3.12.9 i686)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.12.9-i686-Intel-R-_Core-TM-_i5-2540M_CPU_@_2.60GHz-with-gentoo-2.2
KiB Mem:     8174304 total,   2118272 free
KiB Swap:    9767516 total,   9332924 free
Timestamp of tree: Sat, 01 Feb 2014 13:15:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.1.12-r1
dev-lang/python:          2.7.5-r3, 3.2.5-r3, 3.3.3
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.11.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo toralf
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=n --keep-going=y --nospinner --tree --quiet-build --deep"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="http://mirror.netcologne.de/gentoo/ http://mirror.opteamax.de/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa apache2 berkdb bittorrent branding bzip2 cairo cdda cdr classic cli consolekit corefonts cracklib crypt css cups cxx dbus declarative dri dts dvb dvd dvdr emboss encode exif fam fastbuild ffmpeg firefox flac fontconfig fortran g3dvl gdbm gif git gmp gnuplot gphoto2 gpm gtk hyphenation iconv ipv6 isag java jpeg kde kipi kqemu kvm lcms ldap libnotify logrotate mad mbox mmx mng modules mp3 mp4 mpeg mysql mysqli ncurses nls nptl nsplugin ntfs ogg opengl openmp pam pango pcre pdf phonon pkcs11 plasma png policykit ppds qemu qt3support qt4 rdesktop readline sdl semantic-desktop session sna spell spice sse sse2 sse4_1 ssl ssse3 startup-notification svg tcpd thinkpad threads tiff tk transparent-proxy truetype udev udisks uml unicode upower usb uxa v4l vaapi vim-syntax vnc vorbis wxwidgets x264 x86 xa xattr xcb xcomposite xinerama xml xpm xscreensaver xv xvid xvmc zlib" ABI_X86="32" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_GB" LIRC_DEVICES="devinput" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

net-fs/nfs-utils-1.2.9 was built with the following:
USE="ipv6 libmount nfsidmap nfsv4 (policykit) tcpd uuid -caps -kerberos -nfsdcld -nfsv41 (-selinux)



and for the record : https://forums.gentoo.org/viewtopic-p-7492224.html#7492224
Comment 1 Toralf Förster gentoo-dev 2014-02-02 11:15:04 UTC
I'm sure it is a regression, because when NFS v4.2 was available - I immediately tested it and had therefore to add OPTS_NFSD="versions=4.2" - and that worked in the past.
Comment 2 Toralf Förster gentoo-dev 2014-04-04 19:36:30 UTC
steps to reproduce :

trinity ~ # cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 -4.2

trinity ~ # echo "2" > /proc/fs/nfsd/versions

trinity ~ # echo "4.2" > /proc/fs/nfsd/versions

trinity ~ # cat /proc/fs/nfsd/versions
+2 +3 +4 +4.1 +4.2

trinity ~ # /etc/init.d/nfs start
 * Exporting NFS directories ...                                                              [ ok ]
 * Starting NFS mountd ...                                                                    [ ok ]
 * Starting NFS daemon ...                                                                    [ ok ]
 * Starting NFS smnotify ...                                                                  [ ok ]

trinity ~ # cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 -4.2
Comment 3 Toralf Förster gentoo-dev 2014-04-04 19:53:38 UTC
for the record:fix is :

 OPTS_RPC_NFSD="-V 2 -V 3 -V 4 -V 4.1 -V 4.2 ${OPTS_RPC_NFSD}"
Comment 4 Oleg Gawriloff 2014-06-17 17:37:58 UTC
For me its not working. The same modified init.d/nfs
in conf.d/nfs:
OPTS_RPC_NFSD="-V 3 -V 4 ${OPTS_RPC_NFSD}"
also I don't have NFS 4.1 in kernel:
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y

albatros2 ~ # /etc/init.d/nfs restart
 * Exporting NFS directories ...                                          [ ok ]
 * Starting NFS mountd ...                                                [ ok ]
-2 +3 +4 -4.1
-V 3 -V 4 8
 * Starting NFS daemon ...
rpc.nfsd: Setting version failed: errno 22 (Invalid argument)             [ ok ]
-2 +3 +4 +4.1
 * Starting NFS smnotify ...                                              [ ok ]
albatros2 ~ #

nfs-utils also compiled without 4.1 support:
albatros2 ~ # equery uses nfs-utils
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for net-fs/nfs-utils-1.2.9:
 U I
 - - caps     : Use Linux capabilities library to control privilege
 - - ipv6     : Add support for IP version 6
 - - kerberos : Add kerberos support
 + + libmount : Link mount.nfs with libmount
 - - nfsdcld  : Enable nfsdcld NFSv4 clientid tracking daemon
 + + nfsidmap : Enable support for newer nfsidmap helper
 + + nfsv4    : Enable support for NFSv4
 - - nfsv41   : Enable support for NFSv4.1
 + + tcpd     : Add support for TCP wrappers
 + + uuid     : Support UUID lookups in rpc.mountd