* [PATCH] Improve handling of inconsistent precommit metadata
@ 2011-04-10 21:19 Petr Rockai
0 siblings, 0 replies; only message in thread
From: Petr Rockai @ 2011-04-10 21:19 UTC (permalink / raw)
To: lvm-devel
Hi,
working on RHBZ 651590 (failure to lock LV results in failure to repair
mirror after transient error), I have tracked the problem down to the
following sequence of events:
1) devices fail IO, triggering repair
2) dmeventd starts fixing up the mirror
3) during the downconversion, a new metadata version is written
--> the devices come back online here
4) the mirror device suspend/resume is called to update DM tables
5) during the suspend/resume cycle, *pre*-commit metadata is read;
however, since the failed devices are now back online, we get back
inconsistent set of precommit metadata and the whole operation fails
I am attaching a patch that relaxes the check that fails in step 5
above, namely by ignoring inconsistencies coming from PVs that are
marked MISSING.
The patch may fail to apply completely cleanly to current CVS, but it
should be good enough for review. I will check it in myself when
reviewed.
Yours,
Petr
PS: There are couple more patches from me in the review backlog (most
importantly the vgreduce --removemissing --force refactor). If you have
a while, please do have a look.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: inconsistent-precommit-metadata.diff
Type: text/x-diff
Size: 6722 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/lvm-devel/attachments/20110410/036c13cf/attachment.bin>
-------------- next part --------------
--
id' Ash = Ash; id' Dust = Dust; id' _ = undefined
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-04-10 21:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-10 21:19 [PATCH] Improve handling of inconsistent precommit metadata Petr Rockai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.