summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/command.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-05 13:24:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-06 06:34:58 +0100
commit5a4501abeb1005c2cacc84cdd6d2b4f3fcbe188f (patch)
treef5199b47d269402a52ede5a1725b79fc706063cb /bitbake/lib/bb/command.py
parentdc7ef0f896ff7abeb2296fa420ba5219b9455959 (diff)
downloadpoky-5a4501abeb1005c2cacc84cdd6d2b4f3fcbe188f.tar.gz
bitbake: command: Ensure we catch/handle exceptions
If an exception occurs in early setup, bitbake could just hang. Return the exception rather than doing that. [YOCTO #14408] (Bitbake rev: c8a4107132ce51f84ae84bf1ceb1c3fd90f156d3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/command.py')
-rw-r--r--bitbake/lib/bb/command.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
index f530cf844b..a81dcb1366 100644
--- a/bitbake/lib/bb/command.py
+++ b/bitbake/lib/bb/command.py
@@ -65,9 +65,17 @@ class Command:
65 65
66 # Ensure cooker is ready for commands 66 # Ensure cooker is ready for commands
67 if command != "updateConfig" and command != "setFeatures": 67 if command != "updateConfig" and command != "setFeatures":
68 self.cooker.init_configdata() 68 try:
69 if not self.remotedatastores: 69 self.cooker.init_configdata()
70 self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker) 70 if not self.remotedatastores:
71 self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
72 except (Exception, SystemExit) as exc:
73 import traceback
74 if isinstance(exc, bb.BBHandledException):
75 # We need to start returning real exceptions here. Until we do, we can't
76 # tell if an exception is an instance of bb.BBHandledException
77 return None, "bb.BBHandledException()\n" + traceback.format_exc()
78 return None, traceback.format_exc()
71 79
72 if hasattr(CommandsSync, command): 80 if hasattr(CommandsSync, command):
73 # Can run synchronous commands straight away 81 # Can run synchronous commands straight away