[bitbake-devel] [PATCH] fetch2: Ensure cached url data is matched to a datastore

Mark Hatle mark.hatle at kernel.crashing.org
Tue Nov 5 14:18:06 UTC 2019


Just an FYI -- I did test this against the problem we found last week with
devtool modify linux-yocto (and virtual/kernel).  It DID resolved the problem.

--Mark

On 11/2/19 1:05 PM, Richard Purdie wrote:
> 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 1f5f8f1f14..07de6c2693 100644
> --- a/lib/bb/fetch2/__init__.py
> +++ b/lib/bb/fetch2/__init__.py
> @@ -1593,7 +1593,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:
> @@ -1605,7 +1605,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:
> 


More information about the bitbake-devel mailing list