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>
This commit is contained in:
Richard Purdie
2019-09-20 16:30:19 +01:00
parent 155249b1db
commit ff872fdda5
2 changed files with 5 additions and 4 deletions

View File

@@ -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)

View File

@@ -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)