[Pkg-sysvinit-devel] Bug#463504: Bug#463504: division by zero when xdm started at 01

Petter Reinholdtsen pere at hungry.com
Fri Feb 1 06:17:26 UTC 2008


[Martin F Krafft]
> I start xdm first:
> 
> lapse:~> ls /etc/rc2.d/S* | head -1
> /etc/rc2.d/S01xdm

First of all, how did xdm end up that early in the boot sequence?  Do
you have usplash or splashy installed and activated?  I know usplash
need to stop before xdm, so it is very surprising to see that xdm is
the first entry in rc2.d/.

> This causes the num_steps loop on line 257 of /etc/init.d/rc to
> break during the first iteration, which in turn causes a division by
> zero in the startup_process() function:
> 
>   /etc/init.d/rc exited outside the expected control flow
>   /etc/init.d/rc: 2: arithmetic expression: division by zero: "1 * 31 / 0 + 61"
> 
> I think you may mean s/break/continue in the num_steps loop to not
> count those few services, but to continue counting...

This is a problem with sysv-rc, all right.  It should not break down
even if there are no progress bar steps to count because xdm (or kdm
and gdm) is the first entry in the runlevel.  Will have a look at the
logic to fix it.

Moving xdm a bit later in the boot sequence is a workaround you can
apply to fix it while a proper fix propagate into testing.

Happy hacking,
-- 
Petter Reinholdtsen





More information about the Pkg-sysvinit-devel mailing list