chiark / gitweb /
* Call dmsetup remove repeatedly instead of messing with udevsettle.
authorIan Jackson <ian@anarres>
Wed, 4 Apr 2007 17:06:03 +0000 (18:06 +0100)
committerIan Jackson <ian@anarres>
Wed, 4 Apr 2007 17:06:03 +0000 (18:06 +0100)
  udevsettle doesn't always help with the dmsetup remove race.

debian/changelog
xen/cleanup
xen/readconfig.in
xen/with-testbed

index e1e82ba49dc8fa3b9a12c91838c8ac1da846171c..c541b886185320d0c6a4eac591aebad9124d37cc 100644 (file)
@@ -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 <iwj@ubuntu.com>  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
index de08ded67ca74dd26bc456c2a4085e65f7f26f9f..5c1028cff4af5ada4c857d3371793a0848e53687 100755 (executable)
@@ -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
index ee10c20a6f930824c91720a52abde3c44e6d0f9e..b9582935d7b86474093cf197d7373a8853b0eb05 100644 (file)
@@ -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' ;;
 *)     ;;
index f00019506ca2c01d51c90cef386fa427525ead5e..cd6b9461f3b2900f2370503a7e9cc128cdba12e2 100755 (executable)
@@ -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