From: Ian Jackson Date: Wed, 4 Apr 2007 17:06:03 +0000 (+0100) Subject: * Call dmsetup remove repeatedly instead of messing with udevsettle. X-Git-Tag: converted-from-bzr~61^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=242790f64c8023a38d69545171e2f92d98935852;p=autopkgtest.git * Call dmsetup remove repeatedly instead of messing with udevsettle. udevsettle doesn't always help with the dmsetup remove race. --- diff --git a/debian/changelog b/debian/changelog index e1e82ba..c541b88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +autopkgtest (0.8.1) feisty; urgency=low + + * Call dmsetup remove repeatedly instead of messing with udevsettle. + udevsettle doesn't always help with the dmsetup remove race. + + -- Ian Jackson Wed, 4 Apr 2007 18:04:38 +0100 + autopkgtest (0.8.0) feisty; urgency=low * adt-run: new --instantiate option to allow package installation to be diff --git a/xen/cleanup b/xen/cleanup index de08ded..5c1028c 100755 --- a/xen/cleanup +++ b/xen/cleanup @@ -8,7 +8,7 @@ mkdir -p $adt_play $snap try () { printf "%s\n" "- $*"; "$@" >/dev/null 2>&1 ||:; } n=0 -if xm destroy $adt_xmname 2>/dev/null; then do_udevsettle; fi +try xm destroy $adt_xmname 2>/dev/null try umount $lvm_baselv_namepath try dmsetup remove $adt_devmapper_cowdev rm -f $lvm_fslink_ptr diff --git a/xen/readconfig.in b/xen/readconfig.in index ee10c20..b958293 100644 --- a/xen/readconfig.in +++ b/xen/readconfig.in @@ -13,14 +13,6 @@ fail () { x () { echo "x $*"; "$@"; } -do_udevsettle () { - if type udevsettle >/dev/null 2>&1; then - udevsettle - elif test -x /sbin/udevsettle; then - udevsettle - fi -} - case "$BASH_VERSION" in '') fail 'scripts using adtxenlvm readconfig must be bash scripts' ;; *) ;; diff --git a/xen/with-testbed b/xen/with-testbed index f000195..cd6b946 100755 --- a/xen/with-testbed +++ b/xen/with-testbed @@ -30,8 +30,13 @@ rc=$? set -e xm destroy $adt_xmname -do_udevsettle -dmsetup remove $adt_devmapper_cowdev +sleep=0 +while true; do + if dmsetup remove $adt_devmapper_cowdev; then break; fi + if [ $sleep -gt 3 ]; then fail "dmsetup remove kept failing"; fi + sleep $sleep + sleep=$(( $sleep + 1 )) +done trap '' 0 exit $rc