[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#676604: nfs-kernel-server: fails to start if exports are only defined in /etc/exports.d/*.exports



Package: nfs-kernel-server
Version: 1:1.2.6-2
Severity: important

After upgrading nfs-kernel-server, it fails to start, complaining that there are no exports.

  service nfs-kernel-server start
  Not starting NFS kernel daemon: no exports. ... (warning).

I do not have any changes to /etc/exports, it is true, but do have exports 
defined in /etc/exports.d/*.exports, and these are valid exports.

By commenting out the check for an empty /etc/exports (introduced to resolve 
#673798) in /etc/init.d/nfs-kernel-server, nfsd starts and all is well again:

	if [ -f /etc/exports ] # && grep -q '^[[:space:]]*[^#]*/' /etc/exports

This check should probably be either be reverted, or it should at least iterate 
it through all the /etc/exports.d/*.exports files before deciding there are no 
exports.


live well,
  vagrant


-- Package-specific info:
-- rpcinfo --
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  53540  status
    100024    1   tcp  37861  status
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049
    100227    3   tcp   2049
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049
    100227    3   udp   2049
    100021    1   udp  36032  nlockmgr
    100021    3   udp  36032  nlockmgr
    100021    4   udp  36032  nlockmgr
    100021    1   tcp  49636  nlockmgr
    100021    3   tcp  49636  nlockmgr
    100021    4   tcp  49636  nlockmgr
    100005    1   udp  38872  mountd
    100005    1   tcp  56753  mountd
    100005    2   udp  42405  mountd
    100005    2   tcp  46676  mountd
    100005    3   udp  40428  mountd
    100005    3   tcp  33127  mountd
-- /etc/default/nfs-kernel-server --
RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS=--manage-gids
NEED_SVCGSSD=
RPCSVCGSSDOPTS=
-- /etc/exports --

-- System Information:
Debian Release: wheezy/sid
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable'), (120, 'unstable'), (110, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-2-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages nfs-kernel-server depends on:
ii  libblkid1   2.20.1-5
ii  libc6       2.13-32
ii  libtirpc1   0.2.2-5
ii  libwrap0    7.6.q-23
ii  lsb-base    4.1+Debian4
ii  nfs-common  1:1.2.6-2
ii  ucf         3.0025+nmu3

nfs-kernel-server recommends no packages.

nfs-kernel-server suggests no packages.

-- Configuration Files:
/etc/init.d/nfs-kernel-server changed:
DESC="NFS kernel daemon"
PREFIX=/usr
[ -x $PREFIX/sbin/rpc.nfsd    ] || exit 0
[ -x $PREFIX/sbin/rpc.mountd  ] || exit 0
[ -x $PREFIX/sbin/exportfs    ] || exit 0
DEFAULTFILE=/etc/default/nfs-kernel-server
RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS=
NEED_SVCGSSD=no
RPCSVCGSSDOPTS=
PROCNFSD_MOUNTPOINT=/proc/fs/nfsd
if [ -f $DEFAULTFILE ]; then
    . $DEFAULTFILE
fi
. /lib/lsb/init-functions
do_modprobe() {
    if [ -x /sbin/modprobe -a -f /proc/modules ]
    then
        modprobe -q "$1" || true
    fi
}
do_mount() {
    if ! grep -E -qs "$1\$" /proc/filesystems
    then
	return 1
    fi
    if ! mountpoint -q "$2"
    then
	mount -t "$1" "$1" "$2"
	return
    fi
    return 0
}
case "$1" in
  start)
	if [ -f /etc/exports ] # && grep -q '^[[:space:]]*[^#]*/' /etc/exports
	then
		do_modprobe nfsd
		# See if our running kernel supports the NFS kernel server
		if ! grep -E -qs "[[:space:]]nfsd\$" /proc/filesystems; then
			log_warning_msg "Not starting $DESC: no support in current kernel."
			exit 0
		fi
		
		do_mount nfsd $PROCNFSD_MOUNTPOINT || NEED_SVCGSSD=no
		log_begin_msg "Exporting directories for $DESC..."
		$PREFIX/sbin/exportfs -r
		RET=$?
		if [ $RET != 0 ]; then
			log_end_msg $RET
			exit $RET
		fi
		log_end_msg 0
		log_daemon_msg "Starting $DESC"
		log_progress_msg "nfsd"
		
		# See if rpcbind is running
		/usr/sbin/rpcinfo -p >/dev/null 2>&1
		RET=$?
		if [ $RET != 0 ]; then
		    echo
		    log_warning_msg "Not starting: portmapper is not running"
		    exit 0
		fi
		start-stop-daemon --start --oknodo --quiet \
		    --nicelevel $RPCNFSDPRIORITY \
		    --exec $PREFIX/sbin/rpc.nfsd -- $RPCNFSDCOUNT
		RET=$?
		if [ $RET != 0 ]; then
			log_end_msg $RET
			exit $RET
		fi
		# make sure 127.0.0.1 is a valid source for requests
		ClearAddr=
		if [ -f /proc/net/rpc/auth.unix.ip/channel ]
		then
		    fgrep -qs 127.0.0.1 /proc/net/rpc/auth.unix.ip/content || {
			echo "nfsd 127.0.0.1 2147483647 localhost" >/proc/net/rpc/auth.unix.ip/channel
			ClearAddr=yes
		    }
		fi
		$PREFIX/bin/rpcinfo -u localhost nfs 3 >/dev/null 2>&1 ||
		    RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 3"
		[ -z "$ClearAddr" ] || echo "nfsd 127.0.0.1 1" >/proc/net/rpc/auth.unix.ip/channel
	
	        if [ "$NEED_SVCGSSD" = "yes" ]; then
			do_modprobe rpcsec_gss_krb5
			log_progress_msg "svcgssd"
			start-stop-daemon --start --oknodo --quiet \
			    --exec $PREFIX/sbin/rpc.svcgssd -- $RPCSVCGSSDOPTS
			RET=$?
			if [ $RET != 0 ]; then
				log_end_msg $RET
				exit $RET
			fi
		fi
		log_progress_msg "mountd"
		start-stop-daemon --start --oknodo --quiet \
		    --exec $PREFIX/sbin/rpc.mountd -- $RPCMOUNTDOPTS
		RET=$?
		if [ $RET != 0 ]; then
			log_end_msg $RET
			exit $RET
		fi
		log_end_msg 0
	else
		log_warning_msg "Not starting $DESC: no exports."
	fi
	;;
  stop)
	log_daemon_msg "Stopping $DESC"
	log_progress_msg "mountd"
	start-stop-daemon --stop --oknodo --quiet \
	    --name rpc.mountd --user 0
	RET=$?
	if [ $RET != 0 ]; then
		log_end_msg $RET
		exit $RET
	fi
	if [ "$NEED_SVCGSSD" = "yes" ]; then
		log_progress_msg "svcgssd"
		start-stop-daemon --stop --oknodo --quiet \
		    --name rpc.svcgssd --user 0
		RET=$?
		if [ $RET != 0 ]; then
			log_end_msg $RET
			exit $RET
		fi
	fi
	log_progress_msg "nfsd"
	start-stop-daemon --stop --oknodo --quiet \
	    --name nfsd --user 0 --signal 2
	RET=$?
	if [ $RET != 0 ]; then
		log_end_msg $RET
		exit $RET
	fi
	log_end_msg 0
	log_begin_msg "Unexporting directories for $DESC..."
	$PREFIX/sbin/exportfs -au
	RET=$?
	if [ $RET != 0 ]; then
		log_end_msg $RET
		exit $RET
	fi
	log_end_msg 0
	if mountpoint -q $PROCNFSD_MOUNTPOINT
	then
	    $PREFIX/sbin/exportfs -f
	fi
	;;
  status)
	if pidof nfsd >/dev/null
	then
	    echo "nfsd running"
	    exit 0
	else
	    echo "nfsd not running"
	    exit 3
	fi
	;;
  reload | force-reload)
	log_begin_msg "Re-exporting directories for $DESC..."
	$PREFIX/sbin/exportfs -r
	RET=$?
	log_end_msg $RET
	exit $RET
	;;
  restart)
	$0 stop
	sleep 1
	$0 start
	;;
  *)
	log_success_msg "Usage: nfs-kernel-server {start|stop|status|reload|force-reload|restart}"
	exit 1
	;;
esac
exit 0


-- no debconf information



Reply to: