diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-05 15:26:56 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-06 14:39:29 +0000 |
commit | e10df257c9f1fdb63a8683f7aea80b0e5df896ca (patch) | |
tree | 2060a8048f92cfaaf86b32a2b592b536e6e00303 /bitbake | |
parent | ccd7f12b1c95b546ef79204ad0832b88a595d0ea (diff) | |
download | poky-e10df257c9f1fdb63a8683f7aea80b0e5df896ca.tar.gz |
bitbake: siggen: Avoid taskhash mismatch errors for nostamp tasks when dependencies rehash
An example:
NOTE: recipe binutils-cross-testsuite-2.32.0-r0: task do_check: Started
ERROR: Taskhash mismatch b074da4334aff8aa06572e7a8725c941fa6b08de4ce714a65a90c0c0b680abea versus 17375278daed609a7129769b74a1336a37bdef14b534ae85189ccc033a9f2db4 for /home/pokybuild/yocto-worker/qemux86-64/build/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.32.bb:do_check
NOTE: recipe binutils-cross-testsuite-2.32.0-r0: task do_check: Succeeded
Is caused by a rehash in a dependency happening somewhere earlier in the build
and the taint being reset.
Change the code so that nostamp taints are preserved to avoid the issue.
(Bitbake rev: 61624a3fc38e8546e01356d5ce7a09f21e7094ab)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/siggen.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index edf10105f9..de85326872 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -232,10 +232,14 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
232 | taskdep = dataCache.task_deps[fn] | 232 | taskdep = dataCache.task_deps[fn] |
233 | if 'nostamp' in taskdep and task in taskdep['nostamp']: | 233 | if 'nostamp' in taskdep and task in taskdep['nostamp']: |
234 | # Nostamp tasks need an implicit taint so that they force any dependent tasks to run | 234 | # Nostamp tasks need an implicit taint so that they force any dependent tasks to run |
235 | import uuid | 235 | if tid in self.taints and self.taints[tid].startswith("nostamp:"): |
236 | taint = str(uuid.uuid4()) | 236 | # Don't reset taint value upon every call |
237 | data = data + taint | 237 | data = data + self.taints[tid][8:] |
238 | self.taints[tid] = "nostamp:" + taint | 238 | else: |
239 | import uuid | ||
240 | taint = str(uuid.uuid4()) | ||
241 | data = data + taint | ||
242 | self.taints[tid] = "nostamp:" + taint | ||
239 | 243 | ||
240 | taint = self.read_taint(fn, task, dataCache.stamp[fn]) | 244 | taint = self.read_taint(fn, task, dataCache.stamp[fn]) |
241 | if taint: | 245 | if taint: |