diff options
-rw-r--r-- | meta/lib/oe/sstatesig.py | 12 |
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): | |||
104 | "").split() | 104 | "").split() |
105 | self.unlockedrecipes = { k: "" for k in self.unlockedrecipes } | 105 | self.unlockedrecipes = { k: "" for k in self.unlockedrecipes } |
106 | self.buildarch = data.getVar('BUILD_ARCH') | 106 | self.buildarch = data.getVar('BUILD_ARCH') |
107 | self._internal = False | ||
107 | pass | 108 | pass |
108 | 109 | ||
109 | def tasks_resolved(self, virtmap, virtpnmap, dataCache): | 110 | def tasks_resolved(self, virtmap, virtpnmap, dataCache): |
@@ -156,7 +157,12 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
156 | else: | 157 | else: |
157 | return super().get_taskhash(tid, deps, dataCache) | 158 | return super().get_taskhash(tid, deps, dataCache) |
158 | 159 | ||
160 | # get_taskhash will call get_unihash internally in the parent class, we | ||
161 | # need to disable our filter of it whilst this runs else | ||
162 | # incorrect hashes can be calculated. | ||
163 | self._internal = True | ||
159 | h = super().get_taskhash(tid, deps, dataCache) | 164 | h = super().get_taskhash(tid, deps, dataCache) |
165 | self._internal = False | ||
160 | 166 | ||
161 | (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) | 167 | (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) |
162 | 168 | ||
@@ -184,7 +190,9 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
184 | h_locked = self.lockedsigs[recipename][task][0] | 190 | h_locked = self.lockedsigs[recipename][task][0] |
185 | var = self.lockedsigs[recipename][task][1] | 191 | var = self.lockedsigs[recipename][task][1] |
186 | self.lockedhashes[tid] = h_locked | 192 | self.lockedhashes[tid] = h_locked |
187 | unihash = super().get_unihash(tid) | 193 | self._internal = True |
194 | unihash = self.get_unihash(tid) | ||
195 | self._internal = False | ||
188 | self.taskhash[tid] = h_locked | 196 | self.taskhash[tid] = h_locked |
189 | #bb.warn("Using %s %s %s" % (recipename, task, h)) | 197 | #bb.warn("Using %s %s %s" % (recipename, task, h)) |
190 | 198 | ||
@@ -199,7 +207,7 @@ class SignatureGeneratorOEBasicHashMixIn(object): | |||
199 | return h | 207 | return h |
200 | 208 | ||
201 | def get_unihash(self, tid): | 209 | def get_unihash(self, tid): |
202 | if tid in self.lockedhashes and self.lockedhashes[tid]: | 210 | if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal: |
203 | return self.lockedhashes[tid] | 211 | return self.lockedhashes[tid] |
204 | return super().get_unihash(tid) | 212 | return super().get_unihash(tid) |
205 | 213 | ||