[oe-commits] [bitbake] branch 1.42 updated: fetch2: Ensure cached url data is matched to a datastore

git at git.openembedded.org git at git.openembedded.org
Wed Nov 13 22:02:48 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch 1.42
in repository bitbake.

The following commit(s) were added to refs/heads/1.42 by this push:
     new 4ce50bb  fetch2: Ensure cached url data is matched to a datastore
4ce50bb is described below

commit 4ce50bbd34eefeabfeca89a6a66c71598d3c58f6
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Sat Nov 2 17:57:10 2019 +0000

    fetch2: Ensure cached url data is matched to a datastore
    
    There was a weird error in OE-Core where "devtool modify virtual/kernel"
    was showing basehash mismatch errors. This was due to SRCPV sometimes being:
    AUTOINC+b867b78b50_47b80ef7bd and sometimes AUTOINC+b867b78b50_255a750d28.
    
    The latter hash comes from KBRANCH and meant sometimes the correct branch
    was seen, sometimes it was not. The issue was complicated by the execution
    using a remote datastore over tinfoil.
    
    The problem turns out to be a fetcher caching error. If the datastore
    changes, the cached url data may not be valid.
    
    We therefore ensure we match cached url data against the datastore that
    generated it, which appears to fix this issue.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/fetch2/__init__.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index b00aeb3..2ada43b 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -1595,7 +1595,7 @@ class Fetch(object):
         fn = d.getVar('FILE')
         mc = d.getVar('__BBMULTICONFIG') or ""
         if cache and fn and mc + fn in urldata_cache:
-            self.ud = urldata_cache[mc + fn]
+            self.ud = urldata_cache[mc + fn + str(id(d))]
 
         for url in urls:
             if url not in self.ud:
@@ -1607,7 +1607,7 @@ class Fetch(object):
                         pass
 
         if fn and cache:
-            urldata_cache[mc + fn] = self.ud
+            urldata_cache[mc + fn + str(id(d))] = self.ud
 
     def localpath(self, url):
         if url not in self.urls:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list