From: Mark Wooding Date: Mon, 29 Jun 2015 09:45:53 +0000 (+0100) Subject: rsync-backup.in: Retry unmounting snapshot filesystems a few times. X-Git-Tag: 1.1.0~1 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/rsync-backup/commitdiff_plain/0c220a40f4db45d0cc8afc3a17888c504442141f?ds=sidebyside rsync-backup.in: Retry unmounting snapshot filesystems a few times. Not quite sure what's making this fail, but it's happening annoyingly frequently. --- diff --git a/rsync-backup.in b/rsync-backup.in index b0c4086..a48d58a 100644 --- a/rsync-backup.in +++ b/rsync-backup.in @@ -308,9 +308,21 @@ unsnap_lvm () { vg=$1 lv=$2 ## Remove the snapshot. Sometimes LVM doesn't notice that the snapshot is - ## no longer in open immdiately, so try several times. + ## no longer in open immdiately, so try several times. Sometimes, more + ## mysteriously, something is keeping the filesystem from being unmounted, + ## so try that several times and report on things keeping the filesystem + ## open. hostrun "unsnap-lvm $vg/$lv" " - umount $SNAPDIR/$lv + for i in 1 2 3 4; do + echo \";;; BEGIN fuser -mv $SNAPDIR/$lv\" + fuser -mv $SNAPDIR/$lv | sed 's/^/;;; /' + echo \";;; END fuser -mv $SNAPDIR/$lv\" + echo \";;; BEGIN lsof $SNAPDIR/$lv\" + lsof $SNAPDIR/$lv | sed 's/^/;;; /' + echo \";;; END lsof $SNAPDIR/$lv\" + if umount $SNAPDIR/$lv; then break; fi + sleep 2 + done rc=1 for i in 1 2 3 4; do if lvremove -f $vg/$lv.bkp; then rc=0; break; fi