diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-02-17 12:09:33 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-02-17 15:10:03 +0000 |
commit | 2365d891847f8e73d1c4661ddfdab8818ff619dc (patch) | |
tree | 996ef4c7ff10a19c2869476231c7c0769df61b95 | |
parent | 25cb4e17e8a4c0310df018b9df184b0155b267eb (diff) | |
download | bitbake-contrib-2365d891847f8e73d1c4661ddfdab8818ff619dc.tar.gz |
cookerdata: Improve early exception handling
Martin Jansa reported that if you put a syntax error into an imported
module such as qa.py in OE, no error is shown.
Part of the issue appears to be that the catch_parse_error() decorator only
catches certain exceptions and SyntaxError isn't one of them. As far as I can
tell we should remove all the special cases and use the more advanced code
in all cases, not just expansion errors.
I confirmed this now prints a proper error message for a qa.py syntax error.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/bb/cookerdata.py | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/lib/bb/cookerdata.py b/lib/bb/cookerdata.py index d93760c1c..38d0b4666 100644 --- a/lib/bb/cookerdata.py +++ b/lib/bb/cookerdata.py @@ -160,12 +160,7 @@ def catch_parse_error(func): def wrapped(fn, *args): try: return func(fn, *args) - except IOError as exc: - import traceback - parselog.critical(traceback.format_exc()) - parselog.critical("Unable to parse %s: %s" % (fn, exc)) - raise bb.BBHandledException() - except bb.data_smart.ExpansionError as exc: + except Exception as exc: import traceback bbdir = os.path.dirname(__file__) + os.sep @@ -177,9 +172,6 @@ def catch_parse_error(func): break parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb)) raise bb.BBHandledException() - except bb.parse.ParseError as exc: - parselog.critical(str(exc)) - raise bb.BBHandledException() return wrapped @catch_parse_error |