Fix bitbake -k issue introduced by build exception cleanup

A SystemExit from a python function wasn't being raised as a FuncFailed, which
resulted in it not being caught by the exception handlers in the runqueue for
the worker process, which resulted in a SystemExit exit, rather than os._exit,
which causes all manner of problems when used in a forked process.  This fixes
it by ensuring we raise a FuncFailed when seeing exceptions which aren't
instances of Exception.

(Bitbake rev: dafe92fe9f387450d9f9e9ff41c99388998b7495)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Chris Larson
2010-09-10 11:34:39 -07:00
committed by Richard Purdie
parent bfe4bec8ad
commit c90bfa57f5

View File

@@ -178,8 +178,8 @@ def exec_func_python(func, d, runfile, logfile):
comp = utils.better_compile(tmp, func, bbfile)
try:
utils.better_exec(comp, {"d": d}, tmp, bbfile)
except Exception as exc:
if isinstance(exc, (bb.parse.SkipPackage, bb.build.FuncFailed)):
except:
if sys.exc_info()[0] in (bb.parse.SkipPackage, bb.build.FuncFailed):
raise
raise FuncFailed(func, d, logfile)