Control: tags -1 moreinfo unreproducible
Hi
Am 02.03.2016 um 16:24 schrieb detbe:
I upgraded a several machnies from wheezy to jessie. After the upgrade the first boot was
successfull, but sometimes later the boot hangs on "A start job is running..".
Which job exactly was it waiting for? For how long?
5 jobs in infinite cycle the following order:
Starting udev Kernel Device manager...
A start job is running for..
.. udev Kernel Device Manager
.. dev-mapper-vg-name
.. Apply Kernel Variables
.. dev-disk-by-
.. udev Wait for Complete Device Initialization
Can you follow the instructions at [1] and enable a debug shell on tty9.
Boot with systemd.log_level=debug
switch to tty9, store the output of
systemctl list-jobs
and
journalctl -alb
and attach those files to the but report.
The emergency shell not working, no answer after typed systemctl or
journalctl
I try to find what systemd processes running on infinite cycle. Found the
systemd-udevd.service, systemd-udev-settle.service, lvm2-activation service. I
suspected that the lvm2 service started before the udev process finish. I try to find
the right bootup order to this services: systemd.udevd.service ->
systemd-udev-settle.service -> lvm2-activation.service . Every process have to
finish, before the next one started.
Then i edit this services "Before=" lines to force the successfull exit before
the next start.
After many successful boot, finally i try to find out what the exactly missing
option. (Only one needed)
Here is the diff: (working dir /lib/systemd/system/)
diff --git a/systemd-udevd.service b/systemd-udevd.service
index 51497ce..eea7178 100644
--- a/systemd-udevd.service
+++ b/systemd-udevd.service
@@ -11,7 +11,7 @@ Documentation=man:systemd-udevd.service(8) man:udev(7)
DefaultDependencies=no
Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket
After=systemd-udevd-control.socket systemd-udevd-kernel.socket
systemd-udev-hwdb-update.service systemd-sysusers.service
-Before=sysinit.target
+Before=sysinit.target systemd-udev-settle.service
That ordering should not be necessary.
systemd-udev-settle.service has After=systemd-udev-trigger.service which
has After=systemd-udevd-kernel.socket systemd-udevd-control.socket
Yes, i see that, but the reboot issue solved when i added the
systemd-udevd.service before the systemd-udev-settle.service
[1] https://freedesktop.org/wiki/Software/systemd/Debugging/