[oe-commits] [bitbake] branch master-next updated: bitbake: server/process: Handle BBHandledException to avoid unexpected exceptions

git at git.openembedded.org git at git.openembedded.org
Thu Aug 15 21:17:25 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

The following commit(s) were added to refs/heads/master-next by this push:
     new 8f142de  bitbake: server/process: Handle BBHandledException to avoid unexpected exceptions
8f142de is described below

commit 8f142de717afa9519b3776fc939d342efc9b08cc
Author: Robert Yang <liezhi.yang at windriver.com>
AuthorDate: Thu Aug 15 19:56:51 2019 +0800

    bitbake: server/process: Handle BBHandledException to avoid unexpected exceptions
    
    The parseBaseConfiguration() raises bb.BBHandledException(), but
    BitBakeServer() didn't handle it, so we always got unexpected exceptions when
    there were errors. For example:
    
    === Case 1:
    * Add "print "hello"' in base.bbclass' def oe_import() function
    def oe_import(d):
        print "hello"
    [snip]
    
    $ bitbake -p
    ERROR: Unable to start bitbake server (None)
    ERROR: Last 60 lines of server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
      File "/buildarea1/lyang1/poky/meta/classes/base.bbclass", line 21
        print "hello"
                    ^
    SyntaxError: Missing parentheses in call to 'print'
    
    <The first exception>
    During handling of the above exception, another exception occurred:
    <Tracebacks>
    
    <The second exception>
    During handling of the above exception, another exception occurred:
    <Tracebacks>
    
    <The third exception>
    During handling of the above exception, another exception occurred:
    <Tracebacks>
    [snip]
    
    Now it looks like:
    $ bitbake -p
    ERROR: Unable to start bitbake server (None)
    ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
    ERROR: Error in compiling python function in /buildarea1/lyang1/poky/meta/classes/base.bbclass, line 21:
    
    The code lines resulting in this error were:
         0001:def oe_import(d):
     *** 0002:    print "hello"
         0003:    import sys
         0004:
         0005:    bbpath = d.getVar("BBPATH").split(":")
         0006:    sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath]
    SyntaxError: Missing parentheses in call to 'print' (base.bbclass, line 21)
    
    === Case 2:
    * Add 'HOSTTOOLS += "hello"' to conf/local.conf:
    $ bitbake -p
    ERROR: Unable to start bitbake server (None)
    ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
    <Tracebacks>
    [snip]
    During handling of the above exception, another exception occurred:
    [snip]
    <Tracebacks>
    ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
      hello
    
    The error message is printed by bb.fatal() which raises bb.BBHandledException(),
    but BitBakeServer() doesn't handle it, so we got it.
    
    Now it looks like:
    ERROR: Unable to start bitbake server (None)
    ERROR: Server log for this session (/buildarea1/lyang1/test_hy/bitbake-cookerdaemon.log):
    ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
      hello
    
    No unexpected exceptions anymore.
    
    [YOCTO #13267]
    
    Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/server/process.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index f901fe5..69aae62 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -456,7 +456,10 @@ class BitBakeServer(object):
         self.configuration.setServerRegIdleCallback(server.register_idle_function)
         os.close(self.readypipe)
         writer = ConnectionWriter(self.readypipein)
-        self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
+        try:
+            self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
+        except bb.BBHandledException:
+            return None
         writer.send("r")
         writer.close()
         server.cooker = self.cooker

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list