Skip to contentSkip to conversation

Fix ext SDK building with shared sstate-cache

PATCH New Paul Eggleton 1 participant 2 messages Oct 16, 2015

lore
Share & tools
lore
#0 lore raw

cover Fix ext SDK building with shared sstate-cache

The following changes since commit 10e5df3503632a6e1c54612055b19f7258c3ae2f:

lib/oe/image.py: Fix dependency handling for compressed types (2015-10-14 18:08:22 +0300)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/extsdk-sstate-race
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/extsdk-sstate-race

Paul Eggleton (1):
scripts/gen-lockedsig-cache: fix race with temp file creation

 scripts/gen-lockedsig-cache | 4 ++++
 1 file changed, 4 insertions(+)
Signature · 1 line
2.1.0
#1 lore raw

PATCH 1/1 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.

---
 scripts/gen-lockedsig-cache | 4 ++++
 1 file changed, 4 insertions(+)
scripts/gen-lockedsig-cache +4 -0
index c93b2c0..806c1e4 100755
@@ -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)
Signature · 1 line
2.1.0