[libvirt] [PATCH] storage: Wait udev events are handled before removing lvm vol

Osier Yang jyang at redhat.com
Wed Sep 21 23:54:41 UTC 2011


于 2011年09月21日 23:18, Eric Blake 写道:
> On 09/21/2011 12:52 AM, Osier Yang wrote:
>> Related #BZ: https://bugzilla.redhat.com/show_bug.cgi?id=702260.
>>
>> There are two problems described in the BZ:
>> 1) "Can't remove open logical volume".
>> 2) "Unable to deactivate logical volume "foo""
>>
>> This patch just intends to fix 2), as 1) is expected if the vol
>> is still used by something, and you never known if "lvchange -an"
>> will fail or not either (sometime, it will succeed, sometimes not).
>> We'd better not look for trouble, :-)
>>
>> For 2), that's caused by race between lvremove and udev event handling,
>> the only workable way now is to wait the events handling are finished,
>> though it might introduce latencies, as "udevadmin settle" exits
>> after *all* events are handled, it's the only way we can fix
>> the racing in libvirt layer.
>>
>> See https://bugzilla.redhat.com/show_bug.cgi?id=570359 for more
>> details.
>
> In particular, https://bugzilla.redhat.com/show_bug.cgi?id=570359#c28 
> is the recommendation to use 'udevadm settle' prior to lvremove.
>
> ACK.
>
Pushed

Osier




More information about the libvir-list mailing list