[gnome-continuous-yocto/gnomeostree-3.28-rocko: 5365/8267] bitbake: fetch2: Ensure we don't have file downloads overwriting each other



commit bb826208e508222d1d8e73fe7342b40547b4d77b
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Tue Mar 28 12:23:58 2017 +0100

    bitbake: fetch2: Ensure we don't have file downloads overwriting each other
    
    Imagine you have an sstate mirror accessed over http and an SSTATE_MIRRORS
    which maps file:// urls to http:// urls.
    
    File urls set donestampneeded = False, http urls don't. This can result in
    races in the try_mirror_url() code since it will trigger new downloads after
    aquiring the lockfile as verify_donestamp() doesn't look at origud and there
    is no donestamp.
    
    verify_donestamp() already has code to look at origud, we're just missing
    some code at the start of the function to do this. Fix it to avoid
    these races.
    
    (Bitbake rev: b8b14d975a254444461ba857fc6fb8c725de8874)
    
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/fetch2/__init__.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
---
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 464e66b..ea72025 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -625,7 +625,7 @@ def verify_donestamp(ud, d, origud=None):
     Returns True, if the donestamp exists and is valid, False otherwise. When
     returning False, any existing done stamps are removed.
     """
-    if not ud.needdonestamp:
+    if not ud.needdonestamp or (origud and not origud.needdonestamp):
         return True
 
     if not os.path.exists(ud.donestamp):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]