Skip to contentSkip to conversation

sstate: Avoid contention between sstate packages

PATCH Richard Purdie 1 participant 1 message Sep 7, 2011

lore
Share & tools
lore
#0 lore raw

If several sstate packages are decompressing at the same time, they can conflict over the "fixmepath". If two packages try to write to this at the same time it results in an error. To avoid this we remove the file once we've finished processing it.

meta/classes/sstate.bbclass +3 -0
index d7631ca..91f209a 100644
@@ -183,6 +183,9 @@ def sstate_installpkg(ss, d):
             os.system("sed -i -e s:FIXMESTAGINGDIRTARGET:%s:g %s" % (staging_target, sstateinst + file))
             os.system("sed -i -e s:FIXMESTAGINGDIRHOST:%s:g %s" % (staging_host, sstateinst + file))
             os.system("sed -i -e s:FIXMESTAGINGDIR:%s:g %s" % (staging, sstateinst + file))
+        # Need to remove this or we'd copy it into the target directory and may 
+        # conflict with another writer
+        os.remove(fixmefn)
 
     for state in ss['dirs']:
         prepdir(state[1])