summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/sstatesig.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oe/sstatesig.py')
-rw-r--r--meta/lib/oe/sstatesig.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index ca3c6dfeaa..32a500552c 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -104,6 +104,7 @@ class SignatureGeneratorOEBasicHashMixIn(object):
"").split()
self.unlockedrecipes = { k: "" for k in self.unlockedrecipes }
self.buildarch = data.getVar('BUILD_ARCH')
+ self._internal = False
pass
def tasks_resolved(self, virtmap, virtpnmap, dataCache):
@@ -156,7 +157,12 @@ class SignatureGeneratorOEBasicHashMixIn(object):
else:
return super().get_taskhash(tid, deps, dataCache)
+ # get_taskhash will call get_unihash internally in the parent class, we
+ # need to disable our filter of it whilst this runs else
+ # incorrect hashes can be calculated.
+ self._internal = True
h = super().get_taskhash(tid, deps, dataCache)
+ self._internal = False
(mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid)
@@ -184,7 +190,9 @@ class SignatureGeneratorOEBasicHashMixIn(object):
h_locked = self.lockedsigs[recipename][task][0]
var = self.lockedsigs[recipename][task][1]
self.lockedhashes[tid] = h_locked
- unihash = super().get_unihash(tid)
+ 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))
@@ -199,7 +207,7 @@ class SignatureGeneratorOEBasicHashMixIn(object):
return h
def get_unihash(self, tid):
- if tid in self.lockedhashes and self.lockedhashes[tid]:
+ if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal:
return self.lockedhashes[tid]
return super().get_unihash(tid)