[oe-commits] [bitbake] 02/02: siggen: Avoid taskhash mismatch errors for nostamp tasks when dependencies rehash

git at git.openembedded.org git at git.openembedded.org
Thu Dec 5 15:30:17 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit 61624a3fc38e8546e01356d5ce7a09f21e7094ab
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Thu Dec 5 15:26:56 2019 +0000

    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.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/siggen.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py
index edf1010..de85326 100644
--- a/lib/bb/siggen.py
+++ b/lib/bb/siggen.py
@@ -232,10 +232,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
         taskdep = dataCache.task_deps[fn]
         if 'nostamp' in taskdep and task in taskdep['nostamp']:
             # Nostamp tasks need an implicit taint so that they force any dependent tasks to run
-            import uuid
-            taint = str(uuid.uuid4())
-            data = data + taint
-            self.taints[tid] = "nostamp:" + taint
+            if tid in self.taints and self.taints[tid].startswith("nostamp:"):
+                # Don't reset taint value upon every call
+                data = data + self.taints[tid][8:]
+            else:
+                import uuid
+                taint = str(uuid.uuid4())
+                data = data + taint
+                self.taints[tid] = "nostamp:" + taint
 
         taint = self.read_taint(fn, task, dataCache.stamp[fn])
         if taint:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list