[linux-lvm] blkid_wiping breaks snapshots

Zdenek Kabelac zkabelac at redhat.com
Tue Feb 18 08:27:19 UTC 2014


Dne 18.2.2014 09:15, Christian Hesse napsal(a):
> Christian Hesse <list at eworm.de> on Mon, 2014/02/10 14:48:
>> Zdenek Kabelac <zkabelac at redhat.com> on Mon, 2014/02/10 13:20:
>>> Dne 10.2.2014 10:30, Christian Hesse napsal(a):
>>>> Zdenek Kabelac <zkabelac at redhat.com> on Mon, 2014/02/10 09:33:
>>>>> Dne 8.2.2014 00:55, Christian Hesse napsal(a):
>>>>>> Christian Hesse <list at 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






More information about the linux-lvm mailing list