summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-09-20 16:30:19 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-09-30 17:23:35 +0100
commitff872fdda53ffc802ede48e06aae78ee06b361a6 (patch)
treeb6979fd85487359ae8d7d5b62cdde9b9c013345c /bitbake
parent155249b1db2a038c811b957d58b1d1ac9e798bdb (diff)
downloadpoky-ff872fdda53ffc802ede48e06aae78ee06b361a6.tar.gz
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/runqueue.py4
-rw-r--r--bitbake/lib/bb/tests/runqueue.py5
2 files changed, 5 insertions, 4 deletions
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:
2301 continue 2301 continue
2302 if tid in self.runq_running: 2302 if tid in self.runq_running:
2303 continue 2303 continue
2304 if tid in self.scenequeue_covered:
2305 # Potentially risky, should we report this hash as a match?
2306 logger.info("Already covered setscene for %s so ignoring rehash" % (tid))
2307 continue
2304 if tid not in self.pending_migrations: 2308 if tid not in self.pending_migrations:
2305 self.pending_migrations.add(tid) 2309 self.pending_migrations.add(tid)
2306 2310
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):
307 'e1:package_setscene'] 307 'e1:package_setscene']
308 self.assertEqual(set(tasks), set(expected)) 308 self.assertEqual(set(tasks), set(expected))
309 for i in expected: 309 for i in expected:
310 if i in ["e1:package_setscene"]: 310 self.assertEqual(tasks.count(i), 1, "%s not in task list once" % i)
311 self.assertEqual(tasks.count(i), 4, "%s not in task list four times" % i)
312 else:
313 self.assertEqual(tasks.count(i), 1, "%s not in task list once" % i)
314 311