[OE-core] [PATCH v3 13/52] scripts/gen-lockedsig-cache: fix race with temp file creation
Joshua Lock
joshua.lock at collabora.co.uk
Thu Oct 22 15:21:34 UTC 2015
From: Paul Eggleton <paul.eggleton at linux.intel.com>
As part of populating the sstate-cache with an artifact (.tgz file) we
create a temp file and then atomically move it to the final name. Due to
the glob used in this script such temp files were being matched, and
between the time they were matched and the time the script started
copying files, the temp file may have vanished.
This fixes random "No such file or directory" failures building the
extensible SDK on build setups where the sstate-cache directory is shared
amongst multiple build machines.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>
---
scripts/gen-lockedsig-cache | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/scripts/gen-lockedsig-cache b/scripts/gen-lockedsig-cache
index c93b2c0..806c1e4 100755
--- a/scripts/gen-lockedsig-cache
+++ b/scripts/gen-lockedsig-cache
@@ -34,6 +34,10 @@ for s in sigs:
files |= set(glob.glob(p))
for f in files:
+ _, ext = os.path.splitext(f)
+ if not ext in ['.tgz', '.siginfo', '.sig']:
+ # Most likely a temp file, skip it
+ continue
dst = f.replace(sys.argv[2], sys.argv[3])
destdir = os.path.dirname(dst)
mkdir(destdir)
--
2.1.4
More information about the Openembedded-core
mailing list