All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zdenek Kabelac <zkabelac@sourceware.org>
To: lvm-devel@redhat.com
Subject: master - tests: early detect leaking error dev
Date: Mon, 20 Mar 2017 09:19:31 -0400	[thread overview]
Message-ID: <201703201319.v2KDJVU6010432@lists01.pubmisc.prod.ext.phx2.redhat.com> (raw)

Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=17b56a4aed90806eac03c32f013f552440b2f596
Commit:        17b56a4aed90806eac03c32f013f552440b2f596
Parent:        07040942ed02455cf168ba6cf40264a644627553
Author:        Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate:    Mon Mar 20 14:18:50 2017 +0100
Committer:     Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Mon Mar 20 14:18:50 2017 +0100

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).
---
 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 0e8e880..e1b1d98 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"



             reply	other threads:[~2017-03-20 13:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-20 13:19 Zdenek Kabelac [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-03-18 20:23 master - tests: early detect leaking error dev 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=201703201319.v2KDJVU6010432@lists01.pubmisc.prod.ext.phx2.redhat.com \
    --to=zkabelac@sourceware.org \
    --cc=lvm-devel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.