aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-10-09 17:39:20 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-10-09 17:50:24 +0100
commitef762d92df6c2554c6248e80212f984d9ec4c651 (patch)
treedb94d061ff3d8a58a4b6348377f70b0b3a82497a /lib
parenta7c47f1eac8caac607a2b5f12d07235dff4d740f (diff)
downloadbitbake-ef762d92df6c2554c6248e80212f984d9ec4c651.tar.gz
command: Ensure exceptions inheriting from BBHandledException are visible
Previous changes allowed BBHandledException to be detected but not exceptions which inherit from it. Fix this. The code really needs totally reworking to preserve the exceptions. [YOCTO #14054] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/bb/command.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py
index f8c6a03bb..dd77cdd6e 100644
--- a/lib/bb/command.py
+++ b/lib/bb/command.py
@@ -81,8 +81,12 @@ class Command:
result = command_method(self, commandline)
except CommandError as exc:
return None, exc.args[0]
- except (Exception, SystemExit):
+ except (Exception, SystemExit) as exc:
import traceback
+ if isinstance(exc, bb.BBHandledException):
+ # We need to start returning real exceptions here. Until we do, we can't
+ # tell if an exception is an instance of bb.BBHandledException
+ return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
else:
return result, None