From 74883eca07dbb4d2e6a3dd8bd40027025a457ba2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 13 Sep 2022 04:26:31 -1000 Subject: bitbake: runqueue: Fix unihash cache mismatch issues 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. (Bitbake rev: 81a6f490dd1f5f669c75cd2ceb1105ce7a09c6e4) Signed-off-by: Richard Purdie (cherry picked from commit 7912dabbcf444a3c3d971cca4a944a8b931e301b) Signed-off-by: Steve Sakoman Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'bitbake') diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 7eea72e66d..111dc0ee72 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -2381,6 +2381,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() -- cgit v1.2.3-54-g00ecf