summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-28 12:23:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-29 16:36:43 +0100
commitbb826208e508222d1d8e73fe7342b40547b4d77b (patch)
treeef6dd27ed63459a029ea24a93b84101e55683f6a /bitbake/lib
parent415b72ffcbd26e5f3664370d8b2a9b8105fb6342 (diff)
downloadpoky-bb826208e508222d1d8e73fe7342b40547b4d77b.tar.gz
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>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 464e66b98a..ea72025c22 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):
625 Returns True, if the donestamp exists and is valid, False otherwise. When 625 Returns True, if the donestamp exists and is valid, False otherwise. When
626 returning False, any existing done stamps are removed. 626 returning False, any existing done stamps are removed.
627 """ 627 """
628 if not ud.needdonestamp: 628 if not ud.needdonestamp or (origud and not origud.needdonestamp):
629 return True 629 return True
630 630
631 if not os.path.exists(ud.donestamp): 631 if not os.path.exists(ud.donestamp):