--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: nfs-common: breaks systemd - dependency cycle in require-start leads to removal of critical jobs
- From: Alban Browaeys <prahal@yahoo.com>
- Date: Tue, 12 Apr 2011 20:32:35 +0200
- Message-id: <20110412183235.8593.84022.reportbug@penelope.server.maison>
Package: nfs-common
Version: 1:1.2.3-2
Severity: normal
Tox fix this issue I only let 'S' runlevel in require-start LSB header in init
script and postinst. (I also remove 0 1 6 from require-stop as they look weird for
a 'S' runlevel started service).
I had to do the same in rpcbind (should I clone the bug report ?) which I use since portmap
breakage (thus portmap might suffer from the same issue though it is purged here).
Systemd issue:
kernel: [ 11.812950] <31>systemd[1]: Activating default unit: default.target
kernel: [ 11.812970] <31>systemd[1]: Trying to enqueue job graphical.target/start/replace
kernel: [ 11.813695] <28>systemd[1]: Found ordering cycle on basic.target/start
kernel: [ 11.813707] <30>systemd[1]: Walked on cycle path to sockets.target/start
kernel: [ 11.813717] <30>systemd[1]: Walked on cycle path to dbus.socket/start
kernel: [ 11.813726] <30>systemd[1]: Walked on cycle path to sysinit.target/start
kernel: [ 11.813736] <30>systemd[1]: Walked on cycle path to nfs-common.service/start
kernel: [ 11.813746] <30>systemd[1]: Walked on cycle path to basic.target/start
kernel: [ 11.813756] <28>systemd[1]: Breaking ordering cycle by deleting job dbus.socket/start
kernel: [ 11.813768] <31>systemd[1]: Deleting job dbus.service/start as dependency of job dbus.socket/start
kernel: [ 11.813781] <31>systemd[1]: Deleting job avahi-daemon.service/start as dependency of job dbus.socket/start
kernel: [ 11.813811] <28>systemd[1]: Found ordering cycle on basic.target/start
kernel: [ 11.813821] <30>systemd[1]: Walked on cycle path to sysinit.target/start
kernel: [ 11.813831] <30>systemd[1]: Walked on cycle path to nfs-common.service/start
kernel: [ 11.813841] <30>systemd[1]: Walked on cycle path to basic.target/start
kernel: [ 11.813850] <28>systemd[1]: Breaking ordering cycle by deleting job nfs-common.service/start
kernel: [ 11.813896] <28>systemd[1]: Found ordering cycle on basic.target/start
kernel: [ 11.813905] <30>systemd[1]: Walked on cycle path to sysinit.target/start
kernel: [ 11.813914] <30>systemd[1]: Walked on cycle path to rpcbind.service/start
kernel: [ 11.813924] <30>systemd[1]: Walked on cycle path to basic.target/start
kernel: [ 11.813934] <28>systemd[1]: Breaking ordering cycle by deleting job rpcbind.service/start
kernel: [ 11.814156] <31>systemd[1]: Installed new job graphical.target/start as 1
kernel: [ 11.814167] <31>systemd[1]: Installed new job multi-user.target/start as 2
kernel: [ 11.814178] <31>systemd[1]: Installed new job basic.target/start as 3
kernel: [ 11.814188] <31>systemd[1]: Installed new job sysinit.target/start as 4
kernel: [ 11.814198] <31>systemd[1]: Installed new job local-fs.target/start as 5
kernel: [ 11.814208] <31>systemd[1]: Installed new job quotaon.service/start as 6
kernel: [ 11.814219] <31>systemd[1]: Installed new job systemd-logger.socket/start as 7
kernel: [ 11.814229] <31>systemd[1]: Installed new job quotacheck.service/start as 9
kernel: [ 11.814239] <31>systemd[1]: Installed new job lib-init-rw.automount/start as 10
kernel: [ 11.814250] <31>systemd[1]: Installed new job var-run.mount/start as 11
kernel: [ 11.814260] <31>systemd[1]: Installed new job remount-rootfs.service/start as 17
ie the biggest issue is Deleting job dbus.service which kills most desktop service (network-manager, gdm and so forth).
It looks like basic.target is bound to >= 2 runlevels and basic.target depends on 'S' runlevel (sysinit.target).
As nfs-common is also started in 2 runlevel, it also requires 'S' to be completed. Though it is also part of 'S' so is
required by 'S' (sysinit.target).
As I do not see a valid use for behing both in 'S' and '2' runlevel it does not looks like a bug in
systemd. Please reassign if otherwise.
Best regards,
Alban
-- Package-specific info:
-- rpcinfo --
program vers proto port
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
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 37289 nlockmgr
100021 3 udp 37289 nlockmgr
100021 4 udp 37289 nlockmgr
100021 1 tcp 58276 nlockmgr
100021 3 tcp 58276 nlockmgr
100021 4 tcp 58276 nlockmgr
100005 1 udp 58598 mountd
100005 1 tcp 56195 mountd
100005 2 udp 57795 mountd
100005 2 tcp 36443 mountd
100005 3 udp 55540 mountd
100005 3 tcp 57227 mountd
-- /etc/default/nfs-common --
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=
NEED_GSSD=
-- /etc/idmapd.conf --
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
-- /etc/fstab --
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages nfs-common depends on:
ii adduser 3.112+nmu2 add and remove users and groups
ii initscripts 2.88dsf-13.1 scripts for initializing and shutt
ii libc6 2.13-0exp5 Embedded GNU C Library: Shared lib
ii libcap2 1:2.20-1 support for getting/setting POSIX.
ii libcomerr2 1.41.14-1 common error description library
ii libevent-1.4-2 1.4.13-stable-1 An asynchronous event notification
ii libgssapi-krb5-2 1.9+dfsg-1+moonshot1 MIT Kerberos runtime libraries - k
ii libgssglue1 0.2-2 mechanism-switch gssapi library
ii libk5crypto3 1.9+dfsg-1+moonshot1 MIT Kerberos runtime libraries - C
ii libkrb5-3 1.9+dfsg-1+moonshot1 MIT Kerberos runtime libraries
ii libnfsidmap2 0.24-1 An nfs idmapping library
ii libtirpc1 0.2.1-1 transport-independent RPC library
ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers libra
ii lsb-base 3.2-27 Linux Standard Base 3.2 init scrip
ii netbase 4.45 Basic TCP/IP networking system
ii rpcbind 0.2.0-6 converts RPC program numbers into
ii ucf 3.0025+nmu1 Update Configuration File: preserv
Versions of packages nfs-common recommends:
ii python 2.6.6-13 interactive high-level object-orie
nfs-common suggests no packages.
Versions of packages nfs-kernel-server depends on:
ii libblkid1 2.17.2-9.1 block device id library
ii libc6 2.13-0exp5 Embedded GNU C Library: Shared lib
ii libcomerr2 1.41.14-1 common error description library
ii libgssapi-krb5-2 1.9+dfsg-1+moonshot1 MIT Kerberos runtime libraries - k
ii libgssglue1 0.2-2 mechanism-switch gssapi library
ii libk5crypto3 1.9+dfsg-1+moonshot1 MIT Kerberos runtime libraries - C
ii libkrb5-3 1.9+dfsg-1+moonshot1 MIT Kerberos runtime libraries
ii libnfsidmap2 0.24-1 An nfs idmapping library
ii libtirpc1 0.2.1-1 transport-independent RPC library
ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers libra
ii lsb-base 3.2-27 Linux Standard Base 3.2 init scrip
ii ucf 3.0025+nmu1 Update Configuration File: preserv
-- Configuration Files:
/etc/init.d/nfs-common changed:
DESC="NFS common utilities"
DEFAULTFILE=/etc/default/nfs-common
PREFIX=
NEED_STATD=
NEED_IDMAPD=
NEED_GSSD=
PIPEFS_MOUNTPOINT=/var/lib/nfs/rpc_pipefs
RPCGSSDOPTS=
if [ -f $DEFAULTFILE ]; then
. $DEFAULTFILE
fi
. /lib/lsb/init-functions
[ -x $PREFIX/sbin/rpc.statd ] || exit 0
AUTO_NEED_IDMAPD=no
AUTO_NEED_GSSD=no
if [ -f /etc/fstab ]; then
exec 9<&0 </etc/fstab
while read DEV MTPT FSTYPE OPTS REST
do
case $DEV in
''|\#*)
continue
;;
esac
# FSTYPE "nfs" can be NFSv4 now
#if [ "$FSTYPE" = "nfs4" ]; then
AUTO_NEED_IDMAPD=yes
#fi
case "$OPTS" in
sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
AUTO_NEED_GSSD=yes
;;
esac
done
exec 0<&9 9<&-
fi
if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
AUTO_NEED_IDMAPD=yes
fi
case "$NEED_STATD" in
yes|no)
;;
*)
NEED_STATD=yes
;;
esac
case "$NEED_IDMAPD" in
yes|no)
;;
*)
NEED_IDMAPD=$AUTO_NEED_IDMAPD
;;
esac
case "$NEED_GSSD" in
yes|no)
;;
*)
NEED_GSSD=$AUTO_NEED_GSSD
;;
esac
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
}
do_umount() {
if mountpoint -q "$1"
then
umount "$1"
fi
return 0
}
case "$1" in
start)
log_daemon_msg "Starting $DESC"
if [ "$NEED_STATD" = yes ]; then
log_progress_msg "statd"
# See if portmap or rpcbind are running
(cat </dev/null >/dev/tcp/localhost/111) 2>/dev/null
RET=$?
if [ $RET != 0 ]; then
echo
log_warning_msg "Not starting: portmap daemon is not running"
exit 0
fi
start-stop-daemon --start --oknodo --quiet \
--pidfile /var/run/rpc.statd.pid \
--exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
RET=$?
if [ $RET != 0 ]; then
log_end_msg $RET
exit $RET
else
mkdir -p /lib/init/rw/sendsigs.omit.d
rm -f /lib/init/rw/sendsigs.omit.d/statd
ln -s /var/run/rpc.statd.pid /lib/init/rw/sendsigs.omit.d/statd
fi
fi
# Don't start idmapd and gssd if we don't have them (say, if /usr is not
# up yet).
[ -x /usr/sbin/rpc.idmapd ] || NEED_IDMAPD=no
[ -x /usr/sbin/rpc.gssd ] || NEED_GSSD=no
if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]
then
do_modprobe sunrpc
do_modprobe nfs
do_modprobe nfsd
if do_mount rpc_pipefs $PIPEFS_MOUNTPOINT
then
if [ "$NEED_IDMAPD" = yes ]
then
log_progress_msg "idmapd"
start-stop-daemon --start --oknodo --quiet \
--exec /usr/sbin/rpc.idmapd
RET=$?
if [ $RET != 0 ]; then
log_end_msg $RET
exit $RET
fi
fi
if [ "$NEED_GSSD" = yes ]
then
do_modprobe rpcsec_gss_krb5
log_progress_msg "gssd"
# we need this available; better to fail now than
# mysteriously on the first mount
if ! grep -q -E '^nfs[ ]' /etc/services; then
log_action_end_msg 1 "broken /etc/services, please see /usr/share/doc/nfs-common/README.Debian.nfsv4"
exit 1
fi
start-stop-daemon --start --oknodo --quiet \
--exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS
RET=$?
if [ $RET != 0 ]; then
log_end_msg $RET
exit $RET
fi
fi
fi
fi
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping $DESC"
if [ "$NEED_GSSD" = yes ]
then
log_progress_msg "gssd"
start-stop-daemon --stop --oknodo --quiet \
--name rpc.gssd
RET=$?
if [ $RET != 0 ]; then
log_end_msg $RET
exit $RET
fi
fi
if [ "$NEED_IDMAPD" = yes ]
then
log_progress_msg "idmapd"
start-stop-daemon --stop --oknodo --quiet \
--name rpc.idmapd
RET=$?
if [ $RET != 0 ]; then
log_end_msg $RET
exit $RET
fi
fi
if [ "$NEED_STATD" = yes ]
then
log_progress_msg "statd"
start-stop-daemon --stop --oknodo --quiet \
--name rpc.statd
RET=$?
if [ $RET != 0 ]; then
log_end_msg $RET
exit $RET
fi
fi
do_umount $PIPEFS_MOUNTPOINT 2>/dev/null || true
log_end_msg 0
;;
status)
if [ "$NEED_STATD" = yes ]
then
if ! pidof rpc.statd >/dev/null
then
echo "rpc.statd not running"
exit 3
fi
fi
if [ "$NEED_GSSD" = yes ]
then
if ! pidof rpc.gssd >/dev/null
then
echo "rpc.gssd not running"
exit 3
fi
fi
if [ "$NEED_IDMAPD" = yes ]
then
if ! pidof rpc.idmapd >/dev/null
then
echo "rpc.idmapd not running"
exit 3
fi
fi
echo "all daemons running"
exit 0
;;
restart | force-reload)
$0 stop
sleep 1
$0 start
;;
*)
log_success_msg "Usage: nfs-common {start|stop|status|restart}"
exit 1
;;
esac
exit 0
-- no debconf information
-- debsums errors found:
debsums: changed file /var/lib/nfs/state (from nfs-common package)
--- End Message ---
--- Begin Message ---
- To: "ken.march@yahoo.com" <ken.march@yahoo.com>, 775541-done@bugs.debian.org
- Subject: Re: Bug#775541: nfs-utils / still a bug with 1.3.4?
- From: Daniel Pocock <daniel@pocock.pro>
- Date: Wed, 14 Dec 2016 20:24:57 +0100
- Message-id: <2bea4f23-1f1a-56f0-a5e8-b7265ba9f37d@pocock.pro>
- In-reply-to: <1478083166.3121367.1481742733597@mail.yahoo.com>
- References: <360c6421-308f-a9cd-99ed-3161527eb41b@pocock.pro> <1478083166.3121367.1481742733597@mail.yahoo.com>
On 14/12/16 20:12, ken.march@yahoo.com wrote:
> Hi Daniel,
>
> No, this is no longer a bug on my Sid/testing (desktop) system. :-)
>
Great, closing the bug.
Regards,
Daniel
--- End Message ---