]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
bitbake: fetch2/__init__: Disable pseudo in runfetchcmd()
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>
Thu, 20 Feb 2014 14:55:51 +0000 (15:55 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 8 Jan 2018 08:48:54 +0000 (08:48 +0000)
commit205cfd702190026e64eed9cae27c05ff62d1637e
tree687caaed9a145a64889a084244bbcaa233a35122
parent869ae2ce2a9940644c0b591ec9432281bafafa0a
bitbake: fetch2/__init__: Disable pseudo in runfetchcmd()

If a fetcher, e.g., git, is run when pseudo is active it will think it
is running as root. If it in turn uses ssh (as git does), ssh too will
think it is running as root. This will cause it to try to read root's
ssh configuration from /root/.ssh which will fail. If ssh then needs to
ask for credentials it will hang indefinitely as there is nowhere for it
to ask the user for them (and even if there was it would not access the
correct private keys).

The solution to the above is to temporarily disable pseudo while
executing any fetcher commands. There should be no reason for them to be
executed under pseudo anyway so this should not be a problem.

RP Ammendum:

We finally did get more information about how to reproduce this problem,
something needs to trigger bb.fetch2.get_srcrev() in a pseudo context,
for example when AUTOREV is in use or the recipe doesn't have a defined
SRCREV. That SRC_URI needs to be using protocol=ssh. This would trigger
an ls-remote of the remote repo and if that happens under pseudo, the
wrong ssh credentials may be attempted which can hang.

[YOCTO #12464]

(Bitbake rev: ceaca281cafa662aa2385b95641bce309dce843d)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/fetch2/__init__.py