From 0abd64b3afd7e649831bfbcb46299939ec4aceaa Mon Sep 17 00:00:00 2001 From: Pavel Zhukov Date: Fri, 26 Aug 2022 10:40:29 +0200 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/gitsm.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'bitbake/lib/bb/fetch2') 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): # This has to be a file reference proto = "file" url = "gitsm://" + uris[module] + if "{}{}".format(ud.host, ud.path) in url: + raise bb.fetch2.FetchError("Submodule refers to the parent repository. This will cause deadlock situation in current version of Bitbake." \ + "Consider using git fetcher instead.") url += ';protocol=%s' % proto url += ";name=%s" % module -- cgit v1.2.3-54-g00ecf