[Pkg-sysvinit-devel] Bug#594253: Bug#594253: init.d/rc concurrent shutdown tries to run the stop action twice
Kel Modderman
kel at otaku42.de
Tue Sep 21 13:18:55 UTC 2010
On Wednesday 25 August 2010 07:05:14 Ron wrote:
> Package: sysv-rc
> Version: 2.86.ds1-65
> Severity: normal
>
> Hi Petter :)
>
> Thanks for the tips, it turns out this is nothing particularly tricky
> at all, it's just a plain vanilla bug in /etc/init.d/rc ;
>
> Around line 184 we have this code:
>
> case "$runlevel" in
> 0|6)
> ACTION=stop
> ...
>
>
> Followed by this at line 220:
>
> if [ makefile = "$CONCURRENCY" ]
> then
> [ "$previous" != N ] && startup stop
> ...
>
>
> which calls 'startup stop' the first time, and is followed at line 268 by:
>
> if [ makefile = "$CONCURRENCY" ]
> then
> if [ S = "$runlevel" ]
> then
> startup boot
> else
> startup $ACTION
> fi
> else
> ...
>
> Which then calls 'startup stop' again :(
Thanks for the report, this change should sort out the issue:
diff -u sysvinit-2.88dsf/debian/src/sysv-rc/etc/init.d/rc sysvinit-2.88dsf/debian/src/sysv-rc/etc/init.d/rc
--- sysvinit-2.88dsf/debian/src/sysv-rc/etc/init.d/rc
+++ sysvinit-2.88dsf/debian/src/sysv-rc/etc/init.d/rc
@@ -217,10 +215,13 @@
done
step=0
+ # First, run the KILL scripts.
if [ makefile = "$CONCURRENCY" ]
then
- [ "$previous" != N ] && startup stop
- # First, run the KILL scripts.
+ if [ "$ACTION" = "start" ] && [ "$previous" != N ]
+ then
+ startup stop
+ fi
elif [ "$previous" != N ]
then
# Run all scripts with the same level in parallel
---
Thanks, Kel
More information about the Pkg-sysvinit-devel
mailing list