[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#809740: initramfs-tools: Completely ignores rootdelay



Hello Ben and Christoph,

Ben Hutchings [2016-01-29 13:50 +0000]:
> # systemd maintainers do not want to handle ROOTDELAY

For the record, this isn't just a question of *where* to put a "sleep
$ROOTDELAY" -- my point is, the previous sleep was entirely
non-sensical, and moving it around would still be wrong:

 - Sleeping some extra seconds *before* the "wait for root fs" loop in
   local_device_setup() will either be a no-op (if $ROOTDELAY is
   shorter than the actual time that it takes for the root device to
   appear), or it's unnecessary waiting (if $ROOTDELAY is longer than
   necessary). This would have been the case in udev's i-t script, as
   that runs before "local" (IIRC the sleep used to be in init-top/).

 - Sleeping some extra seconds *after* the "wait for root fs" loop
   would be slightly less pointless, as that actually could make a
   difference (like waiting for more RAID mirror members to join
   before you boot the system). Still wrong, but at least not a no-op.
   But if booting a system without it fails, as "I always get a
   degraded array activated" just means that mdadm's initramfs-tools
   hook does not do a thorough enough job to assemble the root
   /dev/md?, or rather, does not wait until enough members are online.
   This should be done properly for every system with a dynamic
   waiting loop, we shouldn't expect users to figure out an
   appropriate $ROOTDELAY by themselves. Static sleeps are never the
   right answer.

So please don't put this into initramfs-tools either -- let's find out
what really goes wrong here and fix it properly?

Thanks,

Martin

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)


Reply to: