Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Dear Release Team, Please consider unblocking freebsd-utils/9.0+ds1-11 Due to a bug in their initscripts, some kfreebsd-* NFS-related daemons would try to start more than once, which I think violates policy, but seemed to have no ill effects. A related issue with the 'stop' action caused sleeps of 30 seconds, for each of these daemons, upon shutdown/reboot/package upgrade. This also meant a KILL signal was used instead of something more appropriate. This is not a regression introduced by freebsd-utils/9.0+ds1-10, but now having three daemons with this problem on a typical NFS server (nfsd, rpc.statd, rpc.lockd) makes it more noticeable and annoying. The fix for this was trivial, is represented in the attached debdiff, and has been tested on real systems. The udebs are unchanged. Thank you, Regards, -- Steven Chamberlain ste...@pyro.eu.org
diff -Nru freebsd-utils-9.0+ds1/debian/changelog freebsd-utils-9.0+ds1/debian/changelog --- freebsd-utils-9.0+ds1/debian/changelog 2013-03-18 10:58:29.000000000 +0000 +++ freebsd-utils-9.0+ds1/debian/changelog 2013-03-27 14:56:47.000000000 +0000 @@ -1,3 +1,13 @@ +freebsd-utils (9.0+ds1-11) unstable; urgency=low + + * Don't use --pidfile when starting/stopping daemons that don't create one: + - Prevents trying to start nfsd, rpc.lockd, rpc.statd more than once + (Closes: #700245) + - Fixes a 30-second delay as each service is stopped (Closes: #700249) + * Stop nfsd with the correct signal USR1, since it ignores TERM + + -- Steven Chamberlain <ste...@pyro.eu.org> Wed, 27 Mar 2013 13:16:03 +0000 + freebsd-utils (9.0+ds1-10) unstable; urgency=low * Import patch by Steven Chamberlain to make rpc.lockd start without diff -Nru freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.lockd.init freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.lockd.init --- freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.lockd.init 2013-03-18 10:32:55.000000000 +0000 +++ freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.lockd.init 2013-03-27 14:19:55.000000000 +0000 @@ -38,9 +38,9 @@ # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \ || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + start-stop-daemon --start --quiet --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready @@ -58,7 +58,7 @@ # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks diff -Nru freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.statd.init freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.statd.init --- freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.statd.init 2013-03-18 10:32:55.000000000 +0000 +++ freebsd-utils-9.0+ds1/debian/freebsd-nfs-common.rpc.statd.init 2013-03-27 14:19:55.000000000 +0000 @@ -40,9 +40,9 @@ # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \ || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + start-stop-daemon --start --quiet --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready @@ -60,7 +60,7 @@ # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks diff -Nru freebsd-utils-9.0+ds1/debian/freebsd-nfs-server.nfsd.init freebsd-utils-9.0+ds1/debian/freebsd-nfs-server.nfsd.init --- freebsd-utils-9.0+ds1/debian/freebsd-nfs-server.nfsd.init 2013-03-18 10:32:55.000000000 +0000 +++ freebsd-utils-9.0+ds1/debian/freebsd-nfs-server.nfsd.init 2013-03-27 14:19:55.000000000 +0000 @@ -44,9 +44,9 @@ # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ + start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \ || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + start-stop-daemon --start --quiet --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready @@ -64,7 +64,7 @@ # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + start-stop-daemon --stop --quiet --retry=USR1/30/KILL/5 --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks