[1/3] runqueue: Fix unihash cache mismatch issues

Message ID 20220601182239.103588-1-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 7912dabbcf444a3c3d971cca4a944a8b931e301b
Headers show
Series [1/3] runqueue: Fix unihash cache mismatch issues | expand

Commit Message

Richard Purdie June 1, 2022, 6:22 p.m. UTC
Very occasionally we see errors in eSDK testing on the autobuilder where the task
hashes in the eSDK don't match what was just built. I was able to inspect one of
these build directories and noticed that the bb_unihashes.dat file in the eSDK
was zero sized. Whilst inspecting the code to understand the cause, I noticed that
updated hashes are not saved out in subsequent updates of the values in the rehash
process.

Add a missing sync call to ensure this happens.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 lib/bb/runqueue.py | 3 +++
 1 file changed, 3 insertions(+)

Patch

diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index f34f1568e2..1e47fe70ef 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -2299,6 +2299,9 @@  class RunQueueExecute:
                     self.rqdata.runtaskentries[hashtid].unihash = unihash
                     bb.parse.siggen.set_unihash(hashtid, unihash)
                     toprocess.add(hashtid)
+                if torehash:
+                    # Need to save after set_unihash above
+                    bb.parse.siggen.save_unitaskhashes()
 
         # Work out all tasks which depend upon these
         total = set()