On Thu, Mar 22, 2007 at 08:56:28AM -0300, Henrique de Moraes Holschuh wrote:
> On Wed, 21 Mar 2007, Steve Langasek wrote:
> > That's not what --oknodo means. Please see the manpage; --oknodo is exactly
> > what's wanted here.

> Was start-stop-daemon fixed, then?  In the past --oknodo behaved
> differently, which is the reason for the ammount of code in amavisd-new to
> make sure "not running" can be told apart from "failed to stop"...

Sorry, I'm not aware that --oknodo ever behaved differently; this has been
the documented behavior as far as I remember.

But it's certainly possible to get a false negative if using --exec with
--stop, as I mentioned, because s-s-d will simply fail to recognize that a
running process is one that should be stopped.  So maybe that's the problem
you're thinking of?

> > Does this mean you don't have time (even with a patch), and would like an
> > NMU?

> NMUs are usually welcome when I don't respond promptly.  In fact, timidity
> has been NMUed already...

> I won't object to NMUs (0-day or delayed) to fix timidity. As long as
> they're done properly, with a NMU patch sent to the BTS, etc, they're
> welcome.

Ok, please find attached the diff for an NMU that I'll be uploading shortly.

On Fri, Mar 23, 2007 at 12:56:31AM +0200, Eddy Petrișor wrote:
> Yes, I should never send patches when I am tired :-) I was trying
> something along the lines of the code below.

> - -       if start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
> - -          --exec ${DAEMON} --retry 10 ; then
> +       if start-stop-daemon --stop --quiet --oknodo --pidfile
> ${PIDFILE} \
> +          --signal TERM/3/TERM/3/KILL/10; then

> Still I wasn't sure if it would make any difference to try to TERM
> twice and I ended up in sending a half baked/broken patch.

Surely not relevant to the problem at hand; I wouldn't mess with the kill
signals unless there's a concrete problem with stopping processes once
they've been identified.

> OTOH, Steve, you said that the --exec option should not be used, but
> I see the same type of code for many other daemons on my system, so
> the issue you are talking about should happen for these binaries,
> too, shouldn't it?

Yes.  And it does, and it's a problem. :)

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/
diff -u timidity-2.13.2/debian/changelog timidity-2.13.2/debian/changelog
--- timidity-2.13.2/debian/changelog
+++ timidity-2.13.2/debian/changelog
@@ -1,3 +1,16 @@
+timidity (2.13.2-7.3) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * High-urgency upload for RC bugfix.
+  * Call start-stop-daemon with --oknodo when stopping timidity in the
+    init script, so that a stopped daemon isn't treated as an error on
+    upgrade.  Closes: #414929.
+  * Also, don't use --exec with start-stop-daemon --stop, as this will
+    fail to find a running daemon if the on-disk binary has been moved
+    out from under us for any reason; use --name instead.
+
+ -- Steve Langasek <[EMAIL PROTECTED]>  Thu, 22 Mar 2007 16:05:48 -0700
+
 timidity (2.13.2-7.2) unstable; urgency=low
 
   * Non-maintainer upload with maintainer permission.
diff -u timidity-2.13.2/debian/timidity.init timidity-2.13.2/debian/timidity.init
--- timidity-2.13.2/debian/timidity.init
+++ timidity-2.13.2/debian/timidity.init
@@ -52,8 +52,8 @@
 	;;
   stop)
   	echo -n "Stopping $DESC: "
-	if start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
-	   --exec ${DAEMON} --retry 10 ; then
+	if start-stop-daemon --stop --quiet --oknodo --pidfile ${PIDFILE} \
+	   --name $(basename ${DAEMON}) --retry 10 ; then
 		echo "timidity."
 	else
 		echo "(failed)."

Reply via email to