bitbake: fetch2: Handle lockfiles for file:// urls redirected to mirrors
We recently dropped lockfiles for file:// urls which in itself makes sense. If a file url redirects to something like an http:// mirror, we'd have no lock taken for the original file and could race against others trying to download the file. We therefore need to ensure there is a lock taken in the mirror handling code. This adds code to take such a lock, assuming it isn't the same lock as the parent url. (Bitbake rev: 913b6ce22cd50eac96e8937c5ffc704bfce2c023) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
b036afb537
commit
84d5924012
|
@ -915,6 +915,10 @@ def rename_bad_checksum(ud, suffix):
|
||||||
def try_mirror_url(fetch, origud, ud, ld, check = False):
|
def try_mirror_url(fetch, origud, ud, ld, check = False):
|
||||||
# Return of None or a value means we're finished
|
# Return of None or a value means we're finished
|
||||||
# False means try another url
|
# False means try another url
|
||||||
|
|
||||||
|
if ud.lockfile and ud.lockfile != origud.lockfile:
|
||||||
|
lf = bb.utils.lockfile(ud.lockfile)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if check:
|
if check:
|
||||||
found = ud.method.checkstatus(fetch, ud, ld)
|
found = ud.method.checkstatus(fetch, ud, ld)
|
||||||
|
@ -980,6 +984,10 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
|
||||||
except UnboundLocalError:
|
except UnboundLocalError:
|
||||||
pass
|
pass
|
||||||
return False
|
return False
|
||||||
|
finally:
|
||||||
|
if ud.lockfile and ud.lockfile != origud.lockfile:
|
||||||
|
bb.utils.unlockfile(lf)
|
||||||
|
|
||||||
|
|
||||||
def try_mirrors(fetch, d, origud, mirrors, check = False):
|
def try_mirrors(fetch, d, origud, mirrors, check = False):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue