summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2
diff options
context:
space:
mode:
authorPavel Zhukov <pavel@zhukoff.net>2022-08-26 10:40:29 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-09-01 10:07:00 +0100
commit0abd64b3afd7e649831bfbcb46299939ec4aceaa (patch)
tree64714491cfbdea26a7f35d71ff91f1856432b962 /bitbake/lib/bb/fetch2
parent9e22a3cccf69a54384767c8d2f22b4badcdab36c (diff)
downloadpoky-0abd64b3afd7e649831bfbcb46299939ec4aceaa.tar.gz
bitbake: gitsm: Error out if submodule refers to parent repo
If submodule refers to specific revision of the parent repository it causes deadlock in bitbake locking mechanism (lock is acquired to fetch the parent and cannot be released before all submodules are fetched). raise FetchError in such situation to prevent deadlocking. [Yocto 14045] (Bitbake rev: 0361ecf7eb82c386a9842cf1f3cb706c0a112e77) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2')
-rw-r--r--bitbake/lib/bb/fetch2/gitsm.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/bitbake/lib/bb/fetch2/gitsm.py b/bitbake/lib/bb/fetch2/gitsm.py
index c1950e4819..25d5db0e5b 100644
--- a/bitbake/lib/bb/fetch2/gitsm.py
+++ b/bitbake/lib/bb/fetch2/gitsm.py
@@ -115,6 +115,9 @@ class GitSM(Git):
115 # This has to be a file reference 115 # This has to be a file reference
116 proto = "file" 116 proto = "file"
117 url = "gitsm://" + uris[module] 117 url = "gitsm://" + uris[module]
118 if "{}{}".format(ud.host, ud.path) in url:
119 raise bb.fetch2.FetchError("Submodule refers to the parent repository. This will cause deadlock situation in current version of Bitbake." \
120 "Consider using git fetcher instead.")
118 121
119 url += ';protocol=%s' % proto 122 url += ';protocol=%s' % proto
120 url += ";name=%s" % module 123 url += ";name=%s" % module