Revert "Fixes race condition with privsep utime"

This reverts commit 525631d8dc.

This change could potentially leave us with an empty file in the image
cache, which would result in failure to spawn for any subsequent
instance using the same image and image cache. This situation can only
be recovered by manually deleting the file from the image cache. Until
we can determine the root cause we should do something safer, like
ignoring the utime failure.

Change-Id: I55c072937d648d7840d01d31ed781bf93cfd94ab
This commit is contained in:
Matthew Booth
2019-03-05 15:24:46 +00:00
parent 525631d8dc
commit e65a5275ee
2 changed files with 6 additions and 12 deletions
+6 -4
View File
@@ -70,10 +70,12 @@ def chmod(path, mode):
def utime(path):
if not os.path.exists(path):
raise exception.FileNotFound(file_path=path)
# 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)
# 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)
@nova.privsep.sys_admin_pctxt.entrypoint
@@ -1,8 +0,0 @@
---
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