Hi!

> When udev kills its worker due to timeout - so udev rules was not finished
> within predefined timeout (which unfortunately changes according to mind
> change of udev developer - so it ranges from 90seconds to 300seconds depending
> on date of release) - you need to look out for reason why the timeout happens 
> -
>
> - is it because disk read was dead ?
>
> - is it because it's overloaded system ?
>
> - is it because of slow read operation (i.e. some raid arrays are known to
> wake-up slowly)
>
> - was udev rule accessing something it shouldn't even read ?

Thanks for these hints. Next time, I will collect the udev events
while trying to reproduce.

Again, I reproduced this on centos 7.6 with lvm2-1.02.180, full log
file will be attached.

>
> Once you know this - you can decide what's the best solution - you can
> extended default timeout to larger value  (i.e. 300 used to be usually good
> for this case)  you can fix/replace your failing drive.

When lvcreate hangs, the /dev/dm-26 has been visible, but the
/dev/vg0/22 symbol link is not ready.

Abstracted from the log, it waits for the udev cookie count to become zero:
"""
libdm-common.c:2433  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464) created
libdm-common.c:2453  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
incremented to 1
libdm-common.c:2325  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
incremented to 2
libdm-common.c:2575  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
assigned to RESUME task(5) with flags DISABLE_LIBRARY_FALLBACK
(0x20)
...
libdm-deptree.c:1302  lvcreate  Resuming vg0-22 (252:26).
...
libdm-common.c:2325  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
incremented to 3
libdm-common.c:2575  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
assigned to RESUME task(5) with flags DISABLE_LIBRARY_FALLBACK
(0x20)
...
activate/fs.c:491   lvcreate  Syncing device names
libdm-common.c:2360  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
decremented to 2
libdm-common.c:2646  lvcreate  Udev cookie 0xd4d0b57 (semid 225214464)
waiting for zero
"""

Since the /dev/dm-x has been created, I don't understand what it waits
udev to do?
Just waits udev rules to create device symbol links?


> lvm2 can be unblocked with 'dmsetup udevcomplete_all'  I guess until udev API
> will propagate its runtime timeout we can't do much more ATM...

Thanks! I remembered there is such a command, but cannot think it up....

>
> You can enable full udev debugging to obtain the reasoning which rule was
> executed and got frozen.

OK.

Regards,
Eric

_______________________________________________
linux-lvm mailing list
linux-lvm@redhat.com
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

Reply via email to