master - tests: longer delay
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=743ffb1962ef272e502...
Commit: 743ffb1962ef272e5023c1ac652c5bcde86ff5fd
Parent: 42b87c23e2e5745eba0f66328319b541303db3aa
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed May 31 13:58:19 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed May 31 13:59:42 2017 +0200
tests: longer delay
Slower sync a bit more and use bigger raid arrays to
be more sure we will catch raid being sychronized.
---
test/shell/lvcreate-raid-nosync.sh | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/shell/lvcreate-raid-nosync.sh b/test/shell/lvcreate-raid-nosync.sh
index 1f01f47..bd7ec81 100644
--- a/test/shell/lvcreate-raid-nosync.sh
+++ b/test/shell/lvcreate-raid-nosync.sh
@@ -35,7 +35,7 @@ _sync() {
# Delay 1st leg so that rebuilding status characters
# can be read before resync finished too quick.
-aux delay_dev "$dev1" 0 90 $(get first_extent_sector "$dev1")
+aux delay_dev "$dev1" 0 100 $(get first_extent_sector "$dev1")
# raid0/raid0_meta don't support resynchronization
for r in raid0 raid0_meta
@@ -58,7 +58,7 @@ lvremove --yes $vg/$lv1
for r in $segtypes
do
# raid4/5 support resynchronization
- lvcreate --type $r -Zn -i 3 -l 4 -n $lv1 $vg
+ lvcreate --type $r -Zn -i 3 -L10 -n $lv1 $vg
check raid_leg_status $vg $lv1 "aaaa"
_sync "AAAA"
@@ -77,7 +77,7 @@ _sync "AAAAA"
not lvcreate --type raid6 --nosync -Zn -i 3 -l 1 -n $lv1 $vg
# raid10 supports resynchronization
-lvcreate --type raid10 -m 1 -Zn -i 3 -l 4 -n $lv1 $vg
+lvcreate --type raid10 -m 1 -Zn -i 3 -L10 -n $lv1 $vg
check raid_leg_status $vg $lv1 "aaaaaa"
_sync "AAAAAA"
6 years, 6 months
master - tests: add some extra udev waits
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=42b87c23e2e5745eba0...
Commit: 42b87c23e2e5745eba0f66328319b541303db3aa
Parent: 091c55a13fbd385f5ea230bcc9bc2b2f0e29af9f
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed May 31 13:23:34 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed May 31 13:23:34 2017 +0200
tests: add some extra udev waits
To get less random results on older systems with systemd (i.e. fc23)
put few extra udev wait operations to avoid any udev event collision.
---
test/shell/fsadm-renamed.sh | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/test/shell/fsadm-renamed.sh b/test/shell/fsadm-renamed.sh
index 5142e51..9f3cd3c 100644
--- a/test/shell/fsadm-renamed.sh
+++ b/test/shell/fsadm-renamed.sh
@@ -64,8 +64,19 @@ esac
echo "$i"
"$i" $MKFS_ARGS "$dev_vg_lv"
+# Adding couple udev wait ops as some older systemd
+# might get confused and was 'randomly/racy' umounting
+# devices just mounted.
+#
+# See for explanation:
+# https://github.com/systemd/systemd/commit/628c89cc68ab96fce2de7ebba593372...
+# https://github.com/systemd/systemd/pull/2017
+aux udev_wait
+
mount "$dev_vg_lv" "$mount_dir"
+aux udev_wait
+
lvrename $vg_lv $vg_lv_ren
mount | tee out
@@ -80,9 +91,12 @@ not umount "$dev_vg_lv"
lvcreate -L20 -n $lv1 $vg
"$i" $MKFS_ARGS "$dev_vg_lv"
+aux udev_wait
+
mount "$dev_vg_lv" "$mount_dolar_dir"
-mount | grep $vg
+mount | tee out
+grep $vg out
not lvresize -L+10M -r $vg_lv_ren
@@ -91,6 +105,8 @@ umount "$mount_dir"
# FIXME: lvresize CANNOT handle/propagage '--yes' to fsadm
echo y | lvresize -L+10M -r $vg_lv
+aux udev_wait
+
umount "$mount_dolar_dir"
lvremove -ff $vg
6 years, 6 months
master - tests: skip reshaping raid10
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=091c55a13fbd385f5ea...
Commit: 091c55a13fbd385f5ea230bcc9bc2b2f0e29af9f
Parent: 3719f4bc5441cb5f29ad4beb91ccaa6b234ea8e1
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed May 31 12:59:53 2017 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed May 31 12:59:53 2017 +0200
tests: skip reshaping raid10
Needs newer target >= 1.10.1 for reshaping of raid10 LVs.
---
test/shell/lvconvert-raid-regionsize.sh | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/test/shell/lvconvert-raid-regionsize.sh b/test/shell/lvconvert-raid-regionsize.sh
index 762dada..d2c8a54 100644
--- a/test/shell/lvconvert-raid-regionsize.sh
+++ b/test/shell/lvconvert-raid-regionsize.sh
@@ -64,7 +64,7 @@ _test_regionsizes raid1
# Clean up
lvremove --yes $vg
-if aux have_raid 1 10 0; then
+if aux have_raid 1 10 1; then
# Create 5-way raid6
lvcreate --yes -aey --type raid6 -i 3 --stripesize 128K -R 256K -L8M -n $lv1 $vg
check lv_field $vg/$lv1 segtype "raid6"
@@ -83,6 +83,7 @@ else
echo "Skipping RAID6 tests"
fi
+if aux have_raid 1 10 1; then
# Create 6-way raid01
lvcreate --yes -aey --type raid10 -i 3 -m 1 --stripesize 128K -R 256K -L8M -n $lv1 $vg
check lv_field $vg/$lv1 segtype "raid10"
@@ -94,5 +95,8 @@ aux wait_for_sync $vg $lv1
fsck -fn "$DM_DEV_DIR/$vg/$lv1"
_test_regionsizes raid10
+else
+ echo "Skipping RAID10 tests"
+fi
vgremove -ff $vg
6 years, 6 months
master - lvconvert: reject changing number of stripes on single core
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=3719f4bc5441cb5f29a...
Commit: 3719f4bc5441cb5f29ad4beb91ccaa6b234ea8e1
Parent: c245996d700458f6ab159a387483736f1c1a6fbf
Author: Heinz Mauelshagen <heinzm(a)redhat.com>
AuthorDate: Tue May 30 19:14:32 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 19:14:32 2017 +0200
lvconvert: reject changing number of stripes on single core
Reject any stripe adding/removing reshape on raid4/5/6/10 because
of related MD kernel deadlock on single core systems until
we get a proper fix in MD.
Related: rhbz1443999
---
lib/metadata/raid_manip.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index 8a70600..80541fd 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -2322,6 +2322,12 @@ static int _raid_reshape(struct logical_volume *lv,
/* Handle disk addition reshaping */
if (old_image_count < new_image_count) {
+ /* FIXME: remove once MD kernel rhbz1443999 got fixed. */
+ if (sysconf(_SC_NPROCESSORS_ONLN) < 2) {
+ log_error("Can't add stripes to LV %s on single core.", display_lvname(lv));
+ return 0;
+ }
+
if (!_raid_reshape_add_images(lv, new_segtype, yes,
old_image_count, new_image_count,
new_stripes, new_stripe_size, allocate_pvs))
@@ -2329,6 +2335,12 @@ static int _raid_reshape(struct logical_volume *lv,
/* Handle disk removal reshaping */
} else if (old_image_count > new_image_count) {
+ /* FIXME: remove once MD kernel rhbz1443999 got fixed. */
+ if (sysconf(_SC_NPROCESSORS_ONLN) < 2) {
+ log_error("Can't remove stripes from LV %s on single core.", display_lvname(lv));
+ return 0;
+ }
+
if (!_raid_reshape_remove_images(lv, new_segtype, yes, force,
old_image_count, new_image_count,
new_stripes, new_stripe_size,
6 years, 6 months
master - tests: missed to export lvm binary for fsadm
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=c245996d700458f6ab1...
Commit: c245996d700458f6ab159a387483736f1c1a6fbf
Parent: b876e8c915a9434fa947ceb447dab32d5ecc74d3
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue May 30 12:59:21 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 18:43:56 2017 +0200
tests: missed to export lvm binary for fsadm
---
test/shell/lvresize-full.sh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/test/shell/lvresize-full.sh b/test/shell/lvresize-full.sh
index 17ee6aa..3eef11a 100644
--- a/test/shell/lvresize-full.sh
+++ b/test/shell/lvresize-full.sh
@@ -20,6 +20,7 @@ SKIP_WITH_LVMPOLLD=1
FSCK=${FSCK-fsck}
MKFS=${MKFS-mkfs.ext3}
RESIZEFS=${RESIZEFS-resize2fs}
+export LVM_BINARY=$(which lvm)
which $FSCK || skip
which $MKFS || skip
6 years, 6 months
master - tests: drop extra debug vvvv
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b876e8c915a9434fa94...
Commit: b876e8c915a9434fa947ceb447dab32d5ecc74d3
Parent: 7c84c5c421806d5ee3fbe885862839a27df7b36a
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue May 30 12:58:32 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 18:43:56 2017 +0200
tests: drop extra debug vvvv
Also show output of mount so when it fails we can check the state.
---
test/shell/fsadm-renamed.sh | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/test/shell/fsadm-renamed.sh b/test/shell/fsadm-renamed.sh
index 3444840..5142e51 100644
--- a/test/shell/fsadm-renamed.sh
+++ b/test/shell/fsadm-renamed.sh
@@ -68,7 +68,8 @@ mount "$dev_vg_lv" "$mount_dir"
lvrename $vg_lv $vg_lv_ren
-mount | grep $vg
+mount | tee out
+grep $vg out
# fails on renamed LV
fail lvresize -L+10M -r $vg_lv_ren
@@ -88,7 +89,7 @@ not lvresize -L+10M -r $vg_lv_ren
umount "$mount_dir"
# FIXME: lvresize CANNOT handle/propagage '--yes' to fsadm
-echo y | lvresize -L+10M -vvvv -r $vg_lv
+echo y | lvresize -L+10M -r $vg_lv
umount "$mount_dolar_dir"
6 years, 6 months
master - tmp
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=a54d21ccd156a38a8cb...
Commit: a54d21ccd156a38a8cbc71ee77e0752c26e4ee7f
Parent: c245996d700458f6ab159a387483736f1c1a6fbf
Author: Heinz Mauelshagen <heinzm(a)redhat.com>
AuthorDate: Wed May 24 22:55:01 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 18:43:56 2017 +0200
tmp
---
tools/lvconvert.c | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 821146f..3423428 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -1293,6 +1293,20 @@ static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *l
if (!seg_is_mirrored(seg) && !seg_is_linear(seg)) {
log_error("--mirrors/-m is not compatible with %s.",
lvseg_name(seg));
+ log_error("You can convert %s LV %s to %s indirectly.",
+ lvseg_name(seg), display_lvname(lv), lp->type_str);
+ if (seg_is_any_raid5(seg)) {
+ if (seg->area_count == 2)
+ log_error("Convert %s LV %s to raid1.",
+ lvseg_name(seg), display_lvname(lv));
+ else
+ log_error("Convert %s LV %s to 2 stripes, then to raid1 and to linear.",
+ lvseg_name(seg), display_lvname(lv));
+ } else
+ log_error("Convert %s LV %s to raid5 with 2 stripes and then to raid1.",
+ lvseg_name(seg), display_lvname(lv));
+
+ log_error("Mind to extend the LV before removing stripes to avoid data loss.");
return 0;
}
if (seg_is_raid10(seg)) {
@@ -1442,7 +1456,13 @@ try_new_takeover_or_reshape:
return 1;
}
- log_error("Conversion operation not yet supported.");
+ if (seg_is_mirror(seg) || seg_is_linear(seg)) {
+ log_error("Convert %s LV %s to raid1 with 2 images (i.e. --mirrors 1) first.",
+ lvseg_name(seg), display_lvname(lv));
+ log_error("Conversion operation failed.");
+ } else
+ log_error("Conversion operation not yet supported.");
+
return 0;
}
6 years, 6 months
master - tests: also check new flag with segtype
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=7c84c5c421806d5ee3f...
Commit: 7c84c5c421806d5ee3fbe885862839a27df7b36a
Parent: fb86bddda2e2944699d9c0705a16642ed1dc99b5
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue May 30 16:10:22 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 18:43:56 2017 +0200
tests: also check new flag with segtype
Make sure new unknown flag is having same behavior as old unknown segtype.
---
test/shell/unknown-segment.sh | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/test/shell/unknown-segment.sh b/test/shell/unknown-segment.sh
index 27cea88..20fc920 100644
--- a/test/shell/unknown-segment.sh
+++ b/test/shell/unknown-segment.sh
@@ -18,9 +18,10 @@ aux prepare_vg 4
lvcreate -an -Zn -l 1 -n $lv1 $vg
lvcreate -an -Zn -l 2 --type mirror -m 1 -n $lv2 $vg
+lvcreate -an -Zn --type zero -l 1 -n $lv3 $vg
vgcfgbackup -f bak0 $vg
-sed -e 's,striped,unstriped,;s,mirror,unmirror,' -i.orig bak0
+sed -e 's,striped,unstriped,;s,mirror,unmirror,;s,zero,zero+NEWFLAG,' -i.orig bak0
vgcfgrestore -f bak0 $vg
# we have on-disk metadata with unknown segments now
@@ -28,11 +29,13 @@ not lvchange -aey $vg/$lv1 # check that activation is refused
# try once more to catch invalid memory access with valgrind
# when clvmd flushes cmd mem pool
-not lvchange -aey $vg/$lv1 # check that activation is refused
+not lvchange -aey $vg/$lv2 # check that activation is refused
+
+not lvchange -aey $vg/$lv3 # check that activation is refused
vgcfgbackup -f bak1 $vg
cat bak1
-sed -e 's,unstriped,striped,;s,unmirror,mirror,' -i.orig bak1
+sed -e 's,unstriped,striped,;s,unmirror,mirror,;s,zero+NEWFLAG,zero,' -i.orig bak1
vgcfgrestore -f bak1 $vg
vgcfgbackup -f bak2 $vg
6 years, 6 months
master - tests: missed to export lvm binary for fsadm
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=c245996d700458f6ab1...
Commit: c245996d700458f6ab159a387483736f1c1a6fbf
Parent: b876e8c915a9434fa947ceb447dab32d5ecc74d3
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue May 30 12:59:21 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 18:43:56 2017 +0200
tests: missed to export lvm binary for fsadm
---
test/shell/lvresize-full.sh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/test/shell/lvresize-full.sh b/test/shell/lvresize-full.sh
index 17ee6aa..3eef11a 100644
--- a/test/shell/lvresize-full.sh
+++ b/test/shell/lvresize-full.sh
@@ -20,6 +20,7 @@ SKIP_WITH_LVMPOLLD=1
FSCK=${FSCK-fsck}
MKFS=${MKFS-mkfs.ext3}
RESIZEFS=${RESIZEFS-resize2fs}
+export LVM_BINARY=$(which lvm)
which $FSCK || skip
which $MKFS || skip
6 years, 6 months
master - flags: improve unknown flags logic
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fb86bddda2e2944699d...
Commit: fb86bddda2e2944699d9c0705a16642ed1dc99b5
Parent: d1ac6108c39ff8a3496624508a0e709c503d7d9f
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue May 30 15:59:42 2017 +0200
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue May 30 18:43:45 2017 +0200
flags: improve unknown flags logic
Use same logic as with unknown segment type - so preserve such
name fully with all flags just with UNKNOWN segment type bits.
---
lib/format_text/flags.c | 34 ++++++++++++++++++++++------------
1 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/lib/format_text/flags.c b/lib/format_text/flags.c
index 2b934da..d86ceb7 100644
--- a/lib/format_text/flags.c
+++ b/lib/format_text/flags.c
@@ -229,16 +229,22 @@ int read_segtype_lvflags(uint64_t *status, char *segtype_str)
unsigned i;
const struct flag *flags = _lv_flags;
char *delim;
- char *flag;
+ char *flag, *buffer, *str;
- if (!(delim = strchr(segtype_str, '+')))
+ if (!(str = strchr(segtype_str, '+')))
return 1; /* No flags */
- *delim = '\0'; /* Cut away 1st. '+' */
+ if (!(buffer = dm_strdup(str + 1))) {
+ log_error("Cannot duplicate segment string.");
+ return 0;
+ }
+
+ delim = buffer;
+
do {
- flag = delim + 1;
- if ((delim = strchr(segtype_str, '+')))
- *delim = '\0';
+ flag = delim;
+ if ((delim = strchr(delim, '+')))
+ *delim++ = '\0';
for (i = 0; flags[i].description; i++)
if ((flags[i].kind & SEGTYPE_FLAG) &&
@@ -247,12 +253,16 @@ int read_segtype_lvflags(uint64_t *status, char *segtype_str)
break;
}
- if (!flags[i].description) {
- log_error("Unknown flag %s passed with segment type %s.",
- flag, segtype_str);
- return 0; /* Unknown flag is incompatible */
- }
- } while (delim); /* Till no more flags in type appear */
+ } while (delim && flags[i].description); /* Till no more flags in type appear */
+
+ if (!flags[i].description)
+ /* Unknown flag is incompatible - returns unmodified segtype_str */
+ log_warn("WARNING: Unrecognised flag %s in segment type %s.",
+ flag, segtype_str);
+ else
+ *str = '\0'; /* Cut away 1st. '+' */
+
+ dm_free(buffer);
return 1;
}
6 years, 6 months