I've tracked down the issue a little.

sysroot.mount requires/after dev-vg-lv.device.

System start, dev-vg-lv is inactive.
vgchange -a y -> dev-vg-lv active.
vgchange -a n -> dev-vg-lv inactive.
At this point, unit->job of dev-vg-lv is NULL (sometimes also happens when
I don't run vgchange, but I still haven't been able to reproduce it).

When sysroot.mount is started, job_is_runnable[1] checks for AFTER
dependencies that have a non-NULL ->job currently running. But dev-vg-lv is
inactive, thus sysroot.mount fails to start.

That also means the REQUIRES dependency of sysroot.mount to dev-vg-lv did
not trigger the start the dev-vg-lv.device.

Resuming: dev-vg-lv.device is inactive and has no job running, it's
required/after yet it's not started when sysroot.mount is started.

I have no deep knowledge of systemd internals to propose anything so I'd
appreciate some feedback :)

Best regards,

[1] http://lxr.devzen.net/source/xref/systemd/src/core/job.c#429
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to