disk_util: retry loopback mounts if they fail

This fails frequently but should succeed if retried. This should reduce
failed builds.
This commit is contained in:
Andrew Jeddeloh 2019-12-16 23:08:33 +00:00 committed by Kai Lüke
parent 00d77d199a
commit 15745d520e
No known key found for this signature in database
GPG Key ID: E5601DA3A1D902A8

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.