scripts/gen-lockedsig-cache: fix race with temp file creation

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.

(From OE-Core rev: 588de5198c641ea1cfc3e01a6d129296bd2f706b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2015-10-16 11:34:39 +01:00 committed by Richard Purdie
parent 3b5d6ffd77
commit 5febb1dc5b
1 changed files with 4 additions and 0 deletions

View File

@ -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)