linux-lvm.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Peter Rajnoha <prajnoha@redhat.com>
To: zkabelac@redhat.com
Cc: Christian Hesse <list@eworm.de>,
	LVM general discussion and development <linux-lvm@redhat.com>
Subject: Re: [linux-lvm] blkid_wiping breaks snapshots
Date: Mon, 10 Feb 2014 19:15:30 +0100	[thread overview]
Message-ID: <52F91742.6020205@redhat.com> (raw)
In-Reply-To: <52F8F6BD.6000101@redhat.com>

On 02/10/2014 04:56 PM, Zdenek Kabelac wrote:
> Dne 10.2.2014 15:37, Christian Hesse napsal(a):
>> Peter Rajnoha <prajnoha@redhat.com> on Mon, 2014/02/10 15:12:
>>> On 02/10/2014 02:48 PM, Christian Hesse wrote:
>>>> 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.
>>>>
>>>> But with blkid_wiping enabled I do have this warning/question now
>>>> for read
>>>> only snapshots as well:
>>>>
>>>> WARNING: DM_snapshot_cow signature detected on /dev/cvg/snap-home
>>>> at offset 0. Wipe it? [y/n]
>>>>
>>>> lvm works perfectly only with your patch applied and compiled with
>>>> --disable-blkid_wiping.
>>>
>>> Also, try this patch in addition:
>>>
>>> https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=ed166a3b1d3290ad887d8f83c24a8d8877713d3c
>>>
>>
>> That did the trick. Thanks a lot!
>>
>> If anybody is interested... These are the patches updated to apply
>> against
>> version 2.02.105:
>>
>> http://www.eworm.de/download/linux/lvm2-snapshot.patch
>> http://www.eworm.de/download/linux/lvm2-snapshot-wiping.patch
>>
> 
> 
> We need to resolve the logic behind the query for wiping. We will most
> probably go with this logic:
> 
> We query for wipe of 'known' signatures, before passing newly allocated
> 'normal' LV (visible).
> Any other so called 'private/hidden' LV will do either wipe or
> unconditional zeroing of 1st. 4kb - which is usually the only thing
> needed here.
> 

MD can write its signature beyond 4K. Just an example...

> Current logic is somewhat overcomplicated.

Current logic is simple - we do the wiping first (not asking about
any special LV signatures that we directly produce - for now its only
the DM_snapshot_cow that libblkid recognizes).

And after wiping, zeroing happens.

Simple as that, nothing overcomplicated actually...

-- 
Peter

  reply	other threads:[~2014-02-10 18:15 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-23 13:27 [linux-lvm] lvm2 2.02.105 breaks snapshots Christian Hesse
2014-02-04  8:55 ` Christian Hesse
2014-02-04 16:47   ` Zdenek Kabelac
2014-02-06 14:48     ` Christian Hesse
2014-02-07 13:14     ` Christian Hesse
2014-02-07 23:36       ` [linux-lvm] blkid_wiping breaks snapshots (was: lvm2 2.02.105 breaks snapshots) Christian Hesse
2014-02-07 23:55         ` Christian Hesse
2014-02-10  8:33           ` [linux-lvm] blkid_wiping breaks snapshots Zdenek Kabelac
2014-02-10  9:30             ` Christian Hesse
2014-02-10 12:20               ` Zdenek Kabelac
2014-02-10 13:48                 ` Christian Hesse
2014-02-10 14:12                   ` Peter Rajnoha
2014-02-10 14:37                     ` Christian Hesse
2014-02-10 15:56                       ` Zdenek Kabelac
2014-02-10 18:15                         ` Peter Rajnoha [this message]
2014-02-10 19:50                           ` Zdenek Kabelac
2014-02-18  8:15                   ` Christian Hesse
2014-02-18  8:27                     ` Zdenek Kabelac

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52F91742.6020205@redhat.com \
    --to=prajnoha@redhat.com \
    --cc=linux-lvm@redhat.com \
    --cc=list@eworm.de \
    --cc=zkabelac@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).