udevsettle doesn't always help with the dmsetup remove race.
+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
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
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' ;;
*) ;;
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