diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-03-10 21:45:18 +0100 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2023-03-11 06:09:24 -1000 |
commit | b459c278a58dd59e2ed86f3adb959fe53d3de021 (patch) | |
tree | b0beb44288e755153a6b061be4db142e79fc71df | |
parent | 0537c1f2d7eba0b69e9ae3b8d7c358aaf89e3321 (diff) | |
download | bitbake-contrib-b459c278a58dd59e2ed86f3adb959fe53d3de021.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>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-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 3555585c8..25eea827d 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 |