[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [linux-lvm] blkid_wiping breaks snapshots



Dne 18.2.2014 09:15, Christian Hesse napsal(a):
Christian Hesse <list eworm de> on Mon, 2014/02/10 14:48:
Zdenek Kabelac <zkabelac redhat com> on Mon, 2014/02/10 13:20:
Dne 10.2.2014 10:30, Christian Hesse napsal(a):
Zdenek Kabelac <zkabelac redhat com> on Mon, 2014/02/10 09:33:
Dne 8.2.2014 00:55, Christian Hesse napsal(a):
Christian Hesse <list eworm de> on Sat, 2014/02/08 00:36:
Hello everybody,

I think I nailed it down with git bisect. My first bad commit is:

75628f341ad38b68aae33eae0b5700be2a6e5769
configure: enable blkid_wiping by default if the blkid library is
present

Looks like this wipes data that is still needed... Building a package
with '--disable-blkid_wipe' now to verify on another system.

Uh, this only helps part of...

I changed my test setup and used writable snapshots. After that I got:

WARNING: DM_snapshot_cow signature detected on /dev/cvg/snap-home at
offset 0. Wipe it? [y/n]

(see https://bbs.archlinux.org/viewtopic.php?id=176504 for another
report)

Looks like disabling blkid_wiping fixes this. My snapshot corruption
still occurs though. :-/
Bad thing about it is that the corruption does not occur reliable when
doing simple tests in 'git bisect'... Out of ideas for now - Will go
to bed now.

Now this was helpful, I guess I think what is going on.

Great! Waiting for patches then. :D

I could provide some more information when needed:

* This happens with read only snapshots only.
* I could reproduce with commit eaa23d32732c9bc3dd4f948781b5764cf21d84ba
    (wiping: add support for blkid wiping), so it was introduced there or
    before.

Should I investigate further or wait for something to test from you?

Is the patch bellow fixing your problem ?
(It's still not final - but should help)

Zdenek


diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index 638a868..e8b1a7f 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -772,7 +772,7 @@ static int _read_activation_params(struct
lvcreate_params *lp, LVM_READ | LVM_WRITE);

          /* Must not zero/wipe read only volume */
-       if (!(lp->permission & LVM_WRITE)) {
+       if (!lp->snapshot && !(lp->permission & LVM_WRITE)) {
                  lp->zero = 0;
                  lp->wipe_signatures = 0;
          }

This looks good to me. I've made some backups now without any corruption.

I have not seen anything show up in git master. Or did I miss the final
solution?

No yet committed upstream - there are more ongoing fixes in this area - I'll
commit them all together.

There will also fix for lvcreate -an

Zdenek




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]