[dm-devel] Re: Snapshot merging
Mike Snitzer
snitzer at redhat.com
Wed Sep 9 16:12:48 UTC 2009
On Wed, Sep 09 2009 at 11:56am -0400,
Mike Snitzer <snitzer at redhat.com> wrote:
> On Wed, Sep 09 2009 at 11:47am -0400,
> Mikulas Patocka <mpatocka at redhat.com> wrote:
>
> > Hi
> >
> > I found one bug in the userspace code --- start merging, then from the
> > other console deactivate the origin volume with lvchange -an, then wait
> > next 15 seconds for the next poll interval:
> >
> > the poll process will think that the merging finished, removing the
> > snapshot, leaving partially merged origin and causing data corruption:
> >
> > [slunicko:~]# lvconvert -M vg1/lv2_snap1
> > Merging of volume lv2_snap1 started.
> > lv2: Merged: 13.1%
> > ( .... deactivate the volume from the other console ....)
> > lv2: Merged: -1.0%
> > Merge into logical volume lv2 finished.
> > Logical volume "snapshot4" successfully removed
> >
> > Maybe this bug was in my code too, I don't remember.
>
> Likely, considering I merely ported your LVM2 patches to the latest
> version. That said, I could've introduced this issue by missing
> something in the port. Regardless, I'll have a look at preventing the
> origin LV from being deactivated during a merge.
Or more correctly: gracefully halt the merge and deactivate merging
snapshot along with the origin. Then on activation the merge should
just resume (in the background).
Mike
More information about the dm-devel
mailing list