]> code.ossystems Code Review - openembedded-core.git/commitdiff
Fix bitbake -k issue introduced by build exception cleanup
authorChris Larson <chris_larson@mentor.com>
Fri, 10 Sep 2010 18:34:39 +0000 (11:34 -0700)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 4 Jan 2011 14:46:36 +0000 (14:46 +0000)
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>
bitbake/lib/bb/build.py

index e800d5cf08091587cae7421c82f3a2575da12880..7061cee20df85f3455a0faa60d79ae7545354cc0 100644 (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)