Comment 10 for bug 585027

Revision history for this message
Alasdair G. Kergon (agk2) wrote : Re: [Bug 585027] Re: Race condition with dmsetup causes 'map already present' messages

On Mon, Jul 09, 2012 at 04:33:25PM -0000, Peter Petrakis wrote:
> I'm not familiar with the cookie feature you mentioned, but we appear to have some of the
> capability here. I haven't compared it to upstream yet.

The code issuing the removal ioctl specfies a cookie (a semaphore with a
positive value). It then waits until the semaphore drops to 0.

The last thing the udev rules do after they've updated /dev is decrement
the semaphore, which wakes up the original code.

There are libdevmapper calls and dmsetup commands to update/query cookie state.

udev 'watch' rules can run out-of-band and need careful configuration to
avoid problems.

If libvirt is issuing dm ioctls or dmsetup commands itself then it might
also need to be udevcookie-aware - not something that's arisen in any
discussions yet - there is some default udevcookie handling built into
dmsetup commands.

I was assured the upstream multipath udevcookie support was complete,
but I've not verified that personally - perhaps we have a situation
that's overlooked here.