[linux-lvm] Internal error: Referenced LV pvmove0 not listed in VG

Anssi Hannula anssi.hannula at iki.fi
Wed Apr 24 18:41:56 UTC 2019


David Teigland kirjoitti 2019-04-24 21:05:
> On Wed, Apr 24, 2019 at 08:10:11PM +0300, Anssi Hannula wrote:
>> Anssi Hannula kirjoitti 2019-04-24 02:06:
>> > Hi all,
>> >
>> > I'm getting the following error when trying to run a pvmove command:
>> >
>> > # pvmove -v /dev/md0:18122768-19076597
>> >     Cluster mirror log daemon not included in build.
>> >     Archiving volume group "delta" metadata (seqno 72).
>> >     Creating logical volume pvmove0
>> >     activation/volume_list configuration setting not defined: Checking
>> > only host tags for delta/home_r.
>> >     Moving 167398 extents of logical volume delta/home_r.
>> >     activation/volume_list configuration setting not defined: Checking
>> > only host tags for delta/data_r.
>> >   Internal error: Referenced LV pvmove0 not listed in VG delta.
>> >
>> > This is with git master, but I see the same on 2.02.177.
> 
> This old comment stands out as possibly related:
> 
>   /* FIXME Cope with non-contiguous => splitting existing segments */
> 
> https://sourceware.org/git/?p=lvm2.git;a=blob;f=tools/pvmove.c;h=c5e39292228393d6d2ce0a21018dba5b5c306da5;hb=HEAD#l342
> 
> It seems you're trying to pvmove a range that covers two segments, 
> which I
> guess doesn't work (I don't know why it doesn't check for this to 
> provide
> a better error.)  If you pvmove segments separately it should avoid 
> that
> limitation (your test works for me if I do "pvmove
> /dev/loop0:18122768-18909199" which avoids crossing a segment 
> boundary.)

Thanks, pvmoving the segments separately seems to work around the issue 
(well, at least the first pvmove started fine).


> 
> 
>> Here is a short reproducer:
>> 
>> ------clip------
>> #!/bin/sh
>> 
>> set -ex
>> 
>> mkdir -p lvmtestdir
>> mount -t tmpfs none lvmtestdir
>> cd lvmtestdir
>> 
>> truncate --size=$((156275497728*512)) testimg1
>> truncate --size=$((46883372928*512)) testimg2
>> 
>> dev1="$(losetup -f --show testimg1)"
>> dev2="$(losetup -f --show testimg2)"
>> 
>> pvcreate "$dev1"
>> pvcreate "$dev2"
>> 
>> vgcreate TESTVG "$dev1" "$dev2"
>> 
>> lvcreate --name=lv0 -l $((1048576+167398)) TESTVG \
>> 	"$dev1":0+655360 \
>> 	"$dev1":17037866+393216 \
>> 	"$dev1":18909200+167398
>> lvcreate --name=lv1 -l $((16382506+1478118)) TESTVG \
>> 	"$dev1":917504+16120362 \
>> 	"$dev1":655360+262144 \
>> 	"$dev1":17431082+1478118
>> 
>> # ERROR
>> pvmove -v "$dev1":18122768-19076597 || :
>> 
>> # cleanup
>> vgremove --force TESTVG
>> losetup -d "$dev1"
>> losetup -d "$dev2"
>> cd ..
>> sleep 1 # lvmtestdir busy?
>> umount lvmtestdir
>> ------clip------

-- 
Anssi Hannula




More information about the linux-lvm mailing list