On Sun, Apr 17, 2011 at 08:50:23PM +0200, Marco d'Itri wrote:
> On Apr 16, rleigh <rle...@codelibre.net> wrote:
> 
> > > > > Maybe your initramfs was not rebuilt to include the code which
> > > > > mounts /run?
> > > > Why would that be required?  /run is mounted by mountkernfs,
> > > > before udevd is started.
> > > Because if /run in the initramfs does not exist or is not a tmpfs then
> > > /dev/.udev/ will be used instead.
> > Well, the logic must be faulty, because it *is* using /run, and it
> > *is* broken.
> The logic is correct and works as intended, networking does not work
> anymore on your system because /etc/network/run/ is a symlink to
> /dev/shm/network/ which does not exist anymore after installing the new
> initscripts package (because S12ifupdown is run before the /dev/shm/
> link is created or something like this).

/etc/network/run is a directory, not a symlink, on my system.

While it's possible that something might fail if /dev/shm does not
exist, which will be the case until mountall has run, this is still
well before ifupdown runs and creates the run directory.
(In the case of /dev/shm, we can make this happen at the point /run/shm
is mounted unlike for the other filesystems; it looks like for
dependency-based boot, this might be required.  But on my system, this
is /not/ the cause of the networking failure.)

As a result, I am still unconvinced that the udev logic is correct.

> You can test this theory by adding the appropriate mkdir command to
> /etc/init.d/networking or just looking at the error messages displayed
> by the init script.

I'll double check if any errors occur.  But as I mentioned above,
this isn't because /etc/network/run does not exist.

> I will open a separate bug for /run not being present in the initramfs,
> which leads to to /dev/.udev/ being used and breakage in LVM.

Thanks.  While making /run available in the initramfs is a good thing
(#621803), udev should not break if it is unavailable.  udev should
work correctly irrespectively of what the initramfs does.  If the
initramfs makes /run available, udev should use it of course, but it
should correctly fall back to e.g. /dev/.udev otherwise.  It should
cope with all these cases:

1) No /run in initramfs, no /run on system
2) No /run in initramfs, /run on system
3) /run in initramfs and /run on system

A versioned initscripts dependency will ensure (1) will never happen,
but (2) and (3) are both possibilities depending upon if the user
rebuild their initramfs and/or upgraded initramfs-tools, so both need
to be handled.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.

Attachment: signature.asc
Description: Digital signature

Reply via email to