diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2017-03-20 14:18:50 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2017-03-20 14:18:50 +0100 |
commit | 17b56a4aed90806eac03c32f013f552440b2f596 (patch) | |
tree | d2a92b3087dc541071d209dfa17974d7506c03fe /test/shell/lvconvert-raid-takeover.sh | |
parent | 07040942ed02455cf168ba6cf40264a644627553 (diff) | |
download | lvm2-17b56a4aed90806eac03c32f013f552440b2f596.tar.gz |
tests: early detect leaking error dev
lvconvert should not leak 'error' device.
(This patch is not fix the problem, just makes it more easily visible
instead of more confusing 'clvmd' trace).
Diffstat (limited to 'test/shell/lvconvert-raid-takeover.sh')
-rw-r--r-- | test/shell/lvconvert-raid-takeover.sh | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/test/shell/lvconvert-raid-takeover.sh b/test/shell/lvconvert-raid-takeover.sh index 0e8e880eb..e1b1d98b4 100644 --- a/test/shell/lvconvert-raid-takeover.sh +++ b/test/shell/lvconvert-raid-takeover.sh @@ -22,6 +22,26 @@ aux have_raid 1 9 1 && correct_raid4_layout=1 aux prepare_vg 8 +# FIXME: lvconvert leaks 'error' devices +detect_error_leak_() +{ + local err + + dmsetup info -c -o name --noheadings | tee out + if grep $vg out ; then + for i in $(grep $vg out) ; do + if dmsetup table $i | grep "error "; then + err="$err $i" + fi + done + test -z "$err" || { + dmsetup table | grep $vg + dmsetup ls --tree + die "Device(s) $err should not be here." + } + fi +} + function _lvcreate { local level=$1 @@ -56,7 +76,8 @@ function _lvconvert [ "${level:0:5}" = "raid0" ] && wait_and_check=0 lvconvert -y --ty $req_level $R $vg/$lv - [ $? -ne 0 ] && return $? + detect_error_leak_ + check lv_field $vg/$lv segtype "$level" check lv_field $vg/$lv data_stripes $data_stripes check lv_field $vg/$lv stripes $stripes @@ -112,6 +133,7 @@ fsck -fn "$DM_DEV_DIR/$vg/$lv1" # Convert 3-way to 4-way mirror lvconvert -m 3 $vg/$lv1 +detect_error_leak_ check lv_field $vg/$lv1 segtype "mirror" check lv_field $vg/$lv1 stripes 4 fsck -fn "$DM_DEV_DIR/$vg/$lv1" @@ -120,6 +142,7 @@ fsck -fn "$DM_DEV_DIR/$vg/$lv1" # Takeover 4-way mirror to raid1 lvconvert --yes --type raid1 -R 64k $vg/$lv1 +detect_error_leak_ check lv_field $vg/$lv1 segtype "raid1" check lv_field $vg/$lv1 stripes 4 check lv_field $vg/$lv1 regionsize "64.00k" @@ -127,6 +150,7 @@ fsck -fn "$DM_DEV_DIR/$vg/$lv1" ## Convert 4-way raid1 to 5-way lvconvert -m 4 -R 128K $vg/$lv1 +detect_error_leak_ check lv_field $vg/$lv1 segtype "raid1" check lv_field $vg/$lv1 stripes 5 check lv_field $vg/$lv1 regionsize "128.00k" @@ -142,6 +166,7 @@ fsck -fn "$DM_DEV_DIR/$vg/$lv1" # Convert 5-way raid1 to 2-way lvconvert --yes -m 1 $vg/$lv1 +detect_error_leak_ lvs $vg/$lv1 dmsetup status $vg-$lv1 dmsetup table $vg-$lv1 @@ -151,6 +176,7 @@ fsck -fn "$DM_DEV_DIR/$vg/$lv1" # Convert 2-way raid1 to mirror lvconvert --yes --type mirror -R 32K $vg/$lv1 +detect_error_leak_ check lv_field $vg/$lv1 segtype "mirror" check lv_field $vg/$lv1 stripes 2 check lv_field $vg/$lv1 regionsize "32.00k" |