[systemd-devel] [uml-devel] Timed out waiting for device dev-disk-by...
Thomas Meyer
thomas at m3y3r.de
Tue Sep 30 11:27:36 PDT 2014
Am Montag, den 29.09.2014, 22:20 +0200 schrieb Richard Weinberger:
> On Mon, Sep 29, 2014 at 8:29 PM, Thomas Meyer <thomas at m3y3r.de> wrote:
> > Hi,
> >
> > I get a timeout in the Fedora 21 alpha:
> >
> > [ TIME ] Timed out waiting for device dev-disk-by\x2duuid-008af19d\x2d2562\x2d49bd\x2d8907\x2d721ea08f3e14.device.
> >
> > But all devices are available from early kernel start:
> > # ls -l /dev/disk/by-uuid/
> > total 0
> > lrwxrwxrwx 1 root root 11 Sep 29 20:17 008af19d-2562-49bd-8907-721ea08f3e14 -> ../../ubda1
> > lrwxrwxrwx 1 root root 11 Sep 29 20:17 e2bffa45-d84f-47bc-81ba-e7a395751fa6 -> ../../ubda3
> > lrwxrwxrwx 1 root root 11 Sep 29 20:17 f452f020-a446-41ed-93c0-ee5ce56d6ea4 -> ../../ubda2
> >
> > It feels like some event notification is lost in the boot process or something like this?!
> >
> > What exactly makes the device unit go into the state active/plugged?
> >
> > This is a boot of the Fedora 21 alpha under user mode linux.
> >
> > Any ideas what could be wrong here?
>
> Please always CC me and/or the UML mailinglist in case of UML related issues.
> I'm very interested in having UML work with systemd.
>
Okay Richard, will do so in future.
Some more info about the above systemd wait (with
systemd.log_level=debug and DEBUG_KOBJECT)
Systemd starts and installs a job for each device tagged with "systemd":
Sep 30 18:07:58 localhost systemd[1]: Installed new job dev-ubdb3.device/start as 34
Sep 30 18:07:58 localhost systemd[1]: Installed new job systemd-fsck at dev-ubdb3.service/start as 35
Sep 30 18:07:58 localhost systemd[1]: Enqueued job initrd.target/start as 1
Sep 30 18:07:58 localhost systemd[1]: Loaded units and determined initial transaction in 837.189ms.
Sep 30 18:07:58 localhost systemd[1]: Received SIGCHLD from PID 32 (n/a).
Device unit is waiting:
Sep 30 18:07:58 localhost systemd[1]: Expecting device dev-ubdb3.device...
udev coldplug:
Sep 30 18:08:02 localhost systemd[360]: Executing: /bin/dracut-pre-trigger
Sep 30 18:08:02 localhost dracut-pre-trigger[360]: rd.dm=0: removing DM RAID activation
Sep 30 18:08:02 localhost systemd-udevd[358]: starting version 215
Sep 30 18:08:02 localhost dracut-pre-trigger[360]: rd.md.imsm=0: no MD RAID for imsm/isw raids
Sep 30 18:08:03 localhost dracut-pre-trigger[360]: rd.md.ddf=0: no MD RAID for SNIA ddf raids
Sep 30 18:08:03 localhost dracut-pre-trigger[360]: rd.md=0: removing MD RAID activation
Sep 30 18:08:04 localhost kernel: kobject: 'alarmtimer' (00000000930ef220): kobject_uevent_env
Sep 30 18:08:04 localhost kernel: kobject: 'alarmtimer' (00000000930ef220): fill_kobj_path: path = '/devices/platform/alarmtimer'
Sep 30 18:08:04 localhost kernel: kobject: 'uml-blkdev.1' (00000000605a1700): kobject_uevent_env
Sep 30 18:08:04 localhost kernel: kobject: 'uml-blkdev.1' (00000000605a1700): fill_kobj_path: path = '/devices/platform/uml-blkdev.1'
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb' (000000008c030480): kobject_uevent_env
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb' (000000008c030480): fill_kobj_path: path = '/devices/platform/uml-blkdev.1/block/ubdb'
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb1' (0000000093205838): kobject_uevent_env
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb1' (0000000093205838): fill_kobj_path: path = '/devices/platform/uml-blkdev.1/block/ubdb/ubdb1'
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb2' (0000000093205638): kobject_uevent_env
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb2' (0000000093205638): fill_kobj_path: path = '/devices/platform/uml-blkdev.1/block/ubdb/ubdb2'
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb3' (0000000093205438): kobject_uevent_env
Sep 30 18:08:04 localhost kernel: kobject: 'ubdb3' (0000000093205438): fill_kobj_path: path = '/devices/platform/uml-blkdev.1/block/ubdb/ubdb3'
So here the udev coldplug triggers the kernel kobject_uevent for 'ubdb3'.
I don't understand why the systemd unit doesn't change to PLUGGED here! It should?! Or shouldn't it?
systemd dump:
Sep 30 18:13:44 servername systemd[1]: -> Unit dev-ubdb3.device:
Sep 30 18:13:44 servername systemd[1]: Description: dev-ubdb3.device
Sep 30 18:13:44 servername systemd[1]: Instance: n/a
Sep 30 18:13:44 servername systemd[1]: Unit Load State: loaded
Sep 30 18:13:44 servername systemd[1]: Unit Active State: inactive
Sep 30 18:13:44 servername systemd[1]: Inactive Exit Timestamp: n/a
Sep 30 18:13:44 servername systemd[1]: Active Enter Timestamp: n/a
Sep 30 18:13:44 servername systemd[1]: Active Exit Timestamp: n/a
Sep 30 18:13:44 servername systemd[1]: Inactive Enter Timestamp: n/a
Sep 30 18:13:44 servername systemd[1]: Need Daemon Reload: no
Sep 30 18:13:44 servername systemd[1]: Transient: no
Sep 30 18:13:44 servername systemd[1]: Slice: n/a
Sep 30 18:13:44 servername systemd[1]: CGroup: n/a
Sep 30 18:13:44 servername systemd[1]: CGroup realized: no
Sep 30 18:13:44 servername systemd[1]: CGroup mask: 0x0
Sep 30 18:13:44 servername systemd[1]: CGroup members mask: 0x0
Sep 30 18:13:44 servername systemd[1]: Name: dev-ubdb3.device
Sep 30 18:13:44 servername systemd[1]: DropIn Path: /run/systemd/generator/dev-ubdb3.device.d/timeout.conf
Sep 30 18:13:44 servername systemd[1]: Condition Timestamp: Tue 2014-09-30 18:07:48 UTC
Sep 30 18:13:44 servername systemd[1]: Condition Result: yes
Sep 30 18:13:44 servername systemd[1]: Wants: sysroot.mount
Sep 30 18:13:44 servername systemd[1]: WantedBy: initrd.target
Sep 30 18:13:44 servername systemd[1]: BoundBy: sysroot.mount
Sep 30 18:13:44 servername systemd[1]: BoundBy: systemd-fsck at dev-ubdb3.service
Sep 30 18:13:44 servername systemd[1]: Before: sysroot.mount
Sep 30 18:13:44 servername systemd[1]: Before: systemd-fsck at dev-ubdb3.service
Sep 30 18:13:44 servername systemd[1]: Before: initrd.target
Sep 30 18:13:44 servername systemd[1]: ReferencedBy: initrd.target
Sep 30 18:13:44 servername systemd[1]: ReferencedBy: sysroot.mount
Sep 30 18:13:44 servername systemd[1]: ReferencedBy: systemd-fsck at dev-ubdb3.service
Sep 30 18:13:44 servername systemd[1]: StopWhenUnneeded: no
Sep 30 18:13:44 servername systemd[1]: RefuseManualStart: no
Sep 30 18:13:44 servername systemd[1]: RefuseManualStop: no
Sep 30 18:13:44 servername systemd[1]: DefaultDependencies: yes
Sep 30 18:13:44 servername systemd[1]: OnFailureJobMode: replace
Sep 30 18:13:44 servername systemd[1]: IgnoreOnIsolate: yes
Sep 30 18:13:44 servername systemd[1]: IgnoreOnSnapshot: yes
Sep 30 18:13:44 servername systemd[1]: Device State: dead
Sep 30 18:13:44 servername systemd[1]: Sysfs Path: n/a
Sep 30 18:13:44 servername systemd[1]: -> Job 34:
Sep 30 18:13:44 servername systemd[1]: Action: dev-ubdb3.device -> start
Sep 30 18:13:44 servername systemd[1]: State: running
Sep 30 18:13:44 servername systemd[1]: Forced: no
Sep 30 18:13:44 servername systemd[1]: Irreversible: no
As far as I understand the code the device unit transits to PLUGGED when
a sysfs path is available, but this seems not to be the case here:
Sysfs Path: n/a
kobj ubdb3 (different boot, therefor changed addresses):
p *(struct kobject*) 0x0000000091e15638
$3 = {name = 0x91e13160 "ubdb3",
entry = {next = 0x91e15440, prev = 0x91e15840},
parent = 0x91e17c80,
kset = 0x91c063c0,
ktype = 0x605e81a0 <device_ktype>,
sd = 0x91e1b118,
kref = {refcount = {counter = 4}},
state_initialized = 1,
state_in_sysfs = 1,
state_add_uevent_sent = 1,
state_remove_uevent_sent = 0,
uevent_suppress = 0}
help is appreciated.
with kind regards
thomas
More information about the systemd-devel
mailing list