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

Reply via email to