Fix unmount/remove race in cleanup_build_dir
With a slow file system, umount can return 0 and the immediately following remove can fail with a "Device or resource busy" error. This happened in DevStack in disk-image-create where unmount_image is followed by an immediate cleanup_build_dir. Solution is to apply same logic from bug 1332521 to allow the remove to retry on failure (up to 5s) in case the umount has not completed. Change-Id: I3337e2b4ad0111e77f79dc179439cdfea8ebdeda Closes-Bug: #1527721
This commit is contained in:
parent
c8c14edfe3
commit
12cb94a75d
@ -173,7 +173,10 @@ function mount_qcow_image() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cleanup_build_dir () {
|
function cleanup_build_dir () {
|
||||||
sudo rm -rf $TMP_BUILD_DIR/built
|
if ! timeout 5 sh -c " while ! sudo rm -rf $TMP_BUILD_DIR/built; do sleep 1; done"; then
|
||||||
|
echo "ERROR: unable to cleanly remove $TMP_BUILD_DIR/built"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
sudo rm -rf $TMP_BUILD_DIR/mnt
|
sudo rm -rf $TMP_BUILD_DIR/mnt
|
||||||
if tmpfs_check 0; then
|
if tmpfs_check 0; then
|
||||||
sudo umount -f $TMP_BUILD_DIR || true
|
sudo umount -f $TMP_BUILD_DIR || true
|
||||||
|
Loading…
Reference in New Issue
Block a user