summaryrefslogtreecommitdiffstats
path: root/meta/classes/sstate.bbclass
diff options
context:
space:
mode:
authorJose Quaresma <quaresma.jose@gmail.com>2021-11-09 11:11:47 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-11-16 22:19:47 +0000
commit46e1f9a900e2be1abeda0dc540fc14040ecd0d7c (patch)
treeed8fe92a7d3d1c9845ce447a0dc1bcd2a9cb0045 /meta/classes/sstate.bbclass
parent18e7a77aa1626e11820804ad64b86a32f97da2ca (diff)
downloadopenembedded-core-contrib-46e1f9a900e2be1abeda0dc540fc14040ecd0d7c.tar.gz
sstate: only search on the mirrors for the missing files
The existence of missed files on the local sstate cache is the condition to search for it on the sstate mirror. The missed collection are populated when we search the files on the local sstate cache. - When we have sstate mirrors we don't need to iterate all files again because we already know what's missing. - When we found a file on the sstate mirror is because of they are missing on the local sstate mirror. So avoid checking if the hash exists on the missed collection. - When we can't find the file on the sstate mirror we don't need to add the hash again to the missed collection as it already exists. Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sstate.bbclass')
-rw-r--r--meta/classes/sstate.bbclass8
1 files changed, 2 insertions, 6 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 3f6a1fe99f..88bd84a06c 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -989,10 +989,8 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
fetcher.checkstatus()
bb.debug(2, "SState: Successful fetch test for %s" % srcuri)
found.add(tid)
- if tid in missed:
- missed.remove(tid)
+ missed.remove(tid)
except bb.fetch2.FetchError as e:
- missed.add(tid)
bb.debug(2, "SState: Unsuccessful fetch test for %s (%s)" % (srcuri, e))
except Exception as e:
bb.error("SState: cannot test %s: %s" % (srcuri, e))
@@ -1001,9 +999,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d)
tasklist = []
- for tid in sq_data['hash']:
- if tid in found:
- continue
+ for tid in missed:
spec, extrapath, tname = getpathcomponents(tid, d)
sstatefile = d.expand(extrapath + generate_sstatefn(spec, gethash(tid), tname, siginfo, d))
tasklist.append((tid, sstatefile))