Merge pull request #888 from ajeddeloh/fix-losetup

disk_util: retry loopback mounts if they fail
This commit is contained in:
Andrew Jeddeloh 2019-12-17 14:58:55 -08:00 committed by GitHub
commit 7bebaa7404
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -598,9 +598,22 @@ def Mount(options):
mount_opts.append('subvol=%s' % mount['fs_subvolume'])
Sudo(['mkdir', '-p', full_path])
Sudo(['mount', '-t', mount.get('fs_type', 'auto'),
'-o', ','.join(mount_opts),
options.disk_image, full_path])
# This tends to fail, retry if it does
err = None
for i in range(0,5):
try:
Sudo(['mount', '-t', mount.get('fs_type', 'auto'),
'-o', ','.join(mount_opts),
options.disk_image, full_path])
err = None
break
except subprocess.CalledProcessError as e:
print("Error mounting %s, attempt %d" % (full_path, i))
err = e
time.sleep(5)
if err is not None:
raise err
for src, dst in mount.get('binds', {}).iteritems():
# src may be relative or absolute, os.path.join handles this.