From ff872fdda53ffc802ede48e06aae78ee06b361a6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 20 Sep 2019 16:30:19 +0100 Subject: bitbake: runqueue: Change task migration behaviour for rerunning setscene tasks Currently runqueue will rerun setscene tasks multiple times as hashes change. This has caused numerous problems since a setscene task may become "unavailable" for some future signature combination and the code then can't easily "unskip" tasks its already passed into the execution queue. At least for now, only run setscene once and assume they're equivalent at that point. In practise that has been much more stable in testing. Tweak the test to match the change in behaviour. (Bitbake rev: 4205a3ef23834f317642bba155d67cd772176fb6) Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 4 ++++ bitbake/lib/bb/tests/runqueue.py | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 02160ef4d7..65169931f1 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -2301,6 +2301,10 @@ class RunQueueExecute: continue if tid in self.runq_running: continue + if tid in self.scenequeue_covered: + # Potentially risky, should we report this hash as a match? + logger.info("Already covered setscene for %s so ignoring rehash" % (tid)) + continue if tid not in self.pending_migrations: self.pending_migrations.add(tid) diff --git a/bitbake/lib/bb/tests/runqueue.py b/bitbake/lib/bb/tests/runqueue.py index 01b992c47c..50b3392bc1 100644 --- a/bitbake/lib/bb/tests/runqueue.py +++ b/bitbake/lib/bb/tests/runqueue.py @@ -307,8 +307,5 @@ class RunQueueTests(unittest.TestCase): 'e1:package_setscene'] self.assertEqual(set(tasks), set(expected)) for i in expected: - if i in ["e1:package_setscene"]: - self.assertEqual(tasks.count(i), 4, "%s not in task list four times" % i) - else: - self.assertEqual(tasks.count(i), 1, "%s not in task list once" % i) + self.assertEqual(tasks.count(i), 1, "%s not in task list once" % i) -- cgit v1.2.3-54-g00ecf