[lvm-devel] [PATCH]: Mirror: Fix hangs and lock-ups caused by attempting label reads of mirrors

Brassow Jonathan jbrassow at redhat.com
Tue Oct 22 13:00:55 UTC 2013


On Oct 22, 2013, at 4:42 AM, Zdenek Kabelac wrote:

> Dne 22.10.2013 00:34, Jonathan Brassow napsal(a):
>> agk,
>> 
>> The patch below is designed to address bug 1009700:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1009700
>> It is the simplest way with the most flexibility for users that I could
>> think of to handle the problem outside of doing the asynchronous label
>> reads.
>> 
> 
> 
> I believe the patch needs to go in different direction.
> 
> See the bug  https://bugzilla.redhat.com/show_bug.cgi?id=905028
> 
> Lvm2 should be smarter in it's scanning code and
> must avoid reading device it know it may block.
> 
> There are very similar problems i.e. with thin pools, so
> it's not practical to put in various hacks for individual
> targets.
> 
> The fix must be in the filter to skip known dm devices.

Yes, I've thought about that already.  One idea for a solution I had was to avoid reading DM devices that have UUID that indicate it is part of the VG being operated on.  That was a non-starter because at the point of the problem, we do not yet know the VGs UUID and therefore cannot use it as a filter.

As far as avoiding devices that are blocked, we already do that for mirrors - which is the problem I am trying to solve.  It is called lib/activate/dev_manager.c:'ignore_blocked_mirror_devices'.  In the header of the patch provided, I describe why this is not sufficient to solve the problem entirely.  To clean-up the code, we could put this function (and the whole of 'device_is_usable') into a filter of its own.  Again though, this doesn't solve the problem.

I like what you are saying.  I've been down that road.  This is why I've presented the solution as I have.

 brassow






More information about the lvm-devel mailing list