aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-02 16:37:58 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-03 22:35:19 +0000
commit23b7484d326cf7fac013384598d7745a042eaa75 (patch)
treeb867ef8a6547d062e277efaf57f6812e7b9ad144
parent523c093a882f6831ba75b5c4513837554d7e2414 (diff)
downloadopenembedded-core-contrib-23b7484d326cf7fac013384598d7745a042eaa75.tar.gz
openembedded-core-contrib-23b7484d326cf7fac013384598d7745a042eaa75.tar.bz2
openembedded-core-contrib-23b7484d326cf7fac013384598d7745a042eaa75.zip
sstatesig: Avoid resetting taskhash within siggen for locked sigs
Since get_unihash uses taskhash as a key internally, changing it means different bebahour when locked sigs are active verses not active. Under corner cases this leads to a signature mismatch. Avoid this by by adding a wrapper for the place its externally exposed and then not changing the internals. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oe/sstatesig.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 32a500552cd..0e17ad6f5b7 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -193,7 +193,6 @@ class SignatureGeneratorOEBasicHashMixIn(object):
self._internal = True
unihash = self.get_unihash(tid)
self._internal = False
- self.taskhash[tid] = h_locked
#bb.warn("Using %s %s %s" % (recipename, task, h))
if h != h_locked and h_locked != unihash:
@@ -206,6 +205,11 @@ class SignatureGeneratorOEBasicHashMixIn(object):
#bb.warn("%s %s %s" % (recipename, task, h))
return h
+ def get_stampfile_hash(self, tid):
+ if tid in self.lockedhashes and self.lockedhashes[tid]:
+ return self.lockedhashes[tid]
+ return super().get_stampfile_hash(tid)
+
def get_unihash(self, tid):
if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal:
return self.lockedhashes[tid]