diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-03-28 12:23:58 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-03-29 16:36:43 +0100 |
commit | bb826208e508222d1d8e73fe7342b40547b4d77b (patch) | |
tree | ef6dd27ed63459a029ea24a93b84101e55683f6a /bitbake/lib | |
parent | 415b72ffcbd26e5f3664370d8b2a9b8105fb6342 (diff) | |
download | poky-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__.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 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): |