[Pkg-sysvinit-devel] Re: Remaining sysvinit issues and updating the etch version

Petter Reinholdtsen pere at hungry.com
Sun Nov 26 20:49:38 CET 2006


I'm sorry for answering so late, but the reason is simply that I did
not know what to answer.  It has been a while since I worked on
sysvinit the last time, and the remaining issues have been rather hard
to find a solution for.  This weekend I managed to sit down and have a
look at the issues.

> I'm not sure how to properly solve these while also solving the
> problem the change was intended to solve.

This still applies, unfortunately.

[Andreas Barth]
> Why that? (I'm not really aware what your changes intended, so you
> need to give me an hint.)

The most problematic issues have been these.

 - I want the network mounting to work even if the switch and network
   card uses a long time to negotiate a network connection, and thus
   want NFS mounting do be done asynchronously when the network
   interfaces is take up by ifup, and not at some random point during
   boot.  At the same time I want stateless workstations (with / on
   read-only NFS mounts, for example) to work too, and this async
   mounting seem to break because ifup hang on such machines.  I ended
   up making the async mounting optional using ASYNCMOUNTNFS in
   /etc/default/rcS.

 - When umounting a machine with some NFS setup, sendsigs will kill
   the NFS client or network daemons before umount the NFS
   directories, and thus be unable to umount the NFS directories.
   This will for example happen if WPA wireless network is used with
   NFS mounts.  I tried to solve this by using fuser to kill the
   processes on the NFs directories before trying to umount them, but
   this again triggered a bug breaking shutdown completely if / was on
   NFS or some virtual file systems were mounted in chroots.  I ended
   up reverting this change for now, while trying to come up with a
   better solution.  I guess I will have to write a special kill
   function skipping processes in the current process group and the
   pid of init, like the killall5 function.

> I also see a couple more issues left where I would at least like to see an
> comment (as I'm currently not sure what there impact is):
>  #391673: initscripts: TMPFS_MTPTS in umountfs must be ordered (one line patch)

Included in todays upload.

>  #391914: do not remove /etc/nologin

I fail to understand how that machine ended up without the symlink
from /etc/nologin to /var/lib/initscripts/nologin.  The code handling
this file was changed to work properly when /etc/ is mounted
read-only.

>  #392861: sysv-rc: Reboot fails with "exited outside the expected code flow"

This was the fuser problem.  Reverted to the previous behaviour.

>  #397900: erroneous runlevel during boot-up sequence

This seem to be a problem with how the current runlevel is recorded
and/or how the bootstrap runlevel is handled.  Not sure how to solve
it.  For now, there is no way for invoke-rc.d to use /sbin/runlevel to
detect the difference between shutdown and boot, as /var/log/utmp
contain the same content in both situations.

> I fear I missed your answer on that mail - in case we want to push
> the new sysvinit to testing, this needs to happen quite fast.

Yes.  I fear we will be to late, as some issues are still not properly
solved.  Thought, the #397900 bug is probably present in all versions
of Debian, and just recently exposed when people started testing
invoke-rc.d from rcS.d/.  For now, I believe we just have to avoid
using invoke-rc.d in the boot-runlevel.

Friendly,
-- 
Petter Reinholdtsen



More information about the Pkg-sysvinit-devel mailing list