[systemd-devel] systemd waiting for already existing devices

Lennart Poettering lennart at poettering.net
Tue Jul 16 18:31:54 PDT 2013


On Mon, 17.06.13 20:12, Alexander Koch (lynix47 at gmail.com) wrote:

> > Bootup is not yet finished. Please try again later.
> 
> > [alex at thor ~]$ systemctl list-jobs
> > JOB UNIT                                TYPE  STATE  
> >  41 dev-mapper-archive4\x2dplain.device start running
> >  47 dev-mapper-archive2\x2dplain.device start running
> >  50 dev-mapper-archive1\x2dplain.device start running
> 
> The number of the device that gets recognized changes randomly on each
> bootup, so I see no dependency on a specific one.
> 
> 
> If I were to guess, then I'd say systemd does not recognize the other
> three volumes being created because they all have the same (primary)
> UUID as the first one, and therefore there is no additional notification
> from the kernel, blockdevice subsystem or wherever systemd gets its
> notifications from.
> 
> 
> Any comments or recommendations on this? It's no big trouble to me,
> because the volume is mounted correctly, but I'm not able to use
> systemd-analyze like this ;)

Hmm this looks like a bug in the btrfs raid assembly logic in
systemd. So what happens when a multi-volume btrfs fs is to be mounted
is that udev will immediately inform the btrfs kernel logic that a new
device appeared as it appears. As soon as btrfs then tells udev that all
devices have been found, then udev will mark that device as ready, which
systemd then takes as hint to mount the thing.

I have a very similar setup of btrfs raid on top of two LUKS disks, I
should be able to reprodeuce this. I added this to the TODO list now.

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list