Comment 11 for bug 38409

Revision history for this message
In , Andreas Sundstrom (sunkan) wrote : Re: Bug#343671: Bug#344040: lvm2: sometimes can create snapshot, sometimes can't

Marco d'Itri wrote:
> reassign 343671 lvm2
> merge 343671 344040
> thanks
>
> On Dec 20, Marco d'Itri <email address hidden> wrote:
>
>
>>This is the configuration which allegedly does not work, it means that
>>udev will not create or delete any device name matching dm-[0-9]*.
>>
>>KERNEL=="dm-[0-9]*", NAME=""
>>
>>I wonder if *some other package* is shipping rules which affect these
>>devices.
>
> I am reassigning this bug to lvm2, if somebody can find an actual
> problem in my package then feel free to reassign it back.
>

Ok, I have done some stracing on the udevd process and the short result
is this:

-- udev-076-6-only-dm-org.log 2005-12-27 10:26:00.000000000 +0100
+++ udev-076-6-only-dm-ignore-device.log 2005-12-27 10:26:13.000000000 +0100
@@ -2,4 +2,24 @@
 unlink("/dev/.udev/failed/block@dm-7") = -1 ENOENT (No such file or directory)
 symlink("/sys/block/dm-7", "/dev/.udev/queue/block@dm-7") = 0
 unlink("/dev/.udev/failed/block@dm-7") = -1 ENOENT (No such file or directory)
+rename("/dev/.udev/queue/block@dm-7", "/dev/.udev/failed/block@dm-7") = 0
+recv(4, "remove@/block/dm-7\0ACTION=remove"..., 1536, 0) = 98
+unlink("/dev/.udev/failed/block@dm-7") = 0
+symlink("/sys/block/dm-7", "/dev/.udev/queue/block@dm-7") = 0
+unlink("/dev/.udev/failed/block@dm-7") = -1 ENOENT (No such file or directory)
 unlink("/dev/.udev/queue/block@dm-7") = 0
+recv(4, "add@/block/dm-7\0ACTION=add\0DEVPA"..., 1536, 0) = 92
+unlink("/dev/.udev/failed/block@dm-7") = -1 ENOENT (No such file or directory)
+symlink("/sys/block/dm-7", "/dev/.udev/queue/block@dm-7") = 0
+recv(4, "add@/block/dm-8\0ACTION=add\0DEVPA"..., 1536, 0) = 92
+unlink("/dev/.udev/failed/block@dm-8") = -1 ENOENT (No such file or directory)
+symlink("/sys/block/dm-8", "/dev/.udev/queue/block@dm-8") = 0
+recv(4, "add@/block/dm-9\0ACTION=add\0DEVPA"..., 1536, 0) = 92
+unlink("/dev/.udev/failed/block@dm-9") = -1 ENOENT (No such file or directory)
+symlink("/sys/block/dm-9", "/dev/.udev/queue/block@dm-9") = 0
+unlink("/dev/.udev/failed/block@dm-7") = -1 ENOENT (No such file or directory)
+rename("/dev/.udev/queue/block@dm-7", "/dev/.udev/failed/block@dm-7") = 0
+unlink("/dev/.udev/failed/block@dm-8") = -1 ENOENT (No such file or directory)
+rename("/dev/.udev/queue/block@dm-8", "/dev/.udev/failed/block@dm-8") = 0
+unlink("/dev/.udev/failed/block@dm-9") = -1 ENOENT (No such file or directory)
+rename("/dev/.udev/queue/block@dm-9", "/dev/.udev/failed/block@dm-9") = 0
sunkan@ans-addon:/tmp$

It seems to me that when NAME="" is used udev unlinks the dm-7 device
from /dev/.udev/queue/ but when ignore_device is used it is first
moved to /dev/.udev/failed/ and then unlinked when udev recieves an
remove action.

I don't understand this enough to tell if it's udev or lvm that
actually needs fixing. Maybe someonelse understands it?

Let me know if I can gather more information for you. I have
attached the "raw" strace logs too, maybe there's more info there that
I have missed.

/Andreas