Merge "Fixes race condition with privsep utime"

This commit is contained in:
Zuul 2019-03-04 14:00:27 +00:00 committed by Gerrit Code Review
commit 65e0c0ba62
2 changed files with 12 additions and 6 deletions

View File

@ -70,12 +70,10 @@ def chmod(path, mode):
def utime(path):
if not os.path.exists(path):
raise exception.FileNotFound(file_path=path)
# NOTE(mikal): the old version of this used execute(touch, ...), which
# would apparently fail on shared storage when multiple instances were
# being launched at the same time. If we see failures here, we might need
# to wrap this in a try / except.
os.utime(path, None)
# context wrapper ensures the file exists before trying to modify time
# which fixes a race condition with NFS image caching (see LP#1809123)
with open(path, 'a'):
os.utime(path, None)
@nova.privsep.sys_admin_pctxt.entrypoint

View File

@ -0,0 +1,8 @@
---
fixes:
- |
Fixes a race condition when multiple instances are launched at the same
time, which leads to a failure when modifying the modified time of the
instance base image. This issue was noticed when using an NFS backend. For
more information see https://bugs.launchpad.net/nova/+bug/1809123