[gnome-continuous-yocto/gnomeostree-3.28-rocko: 8252/8267] bitbake: tinfoil: Ensure we clean up loggers



commit 1c61ba0a3f89959ad9668c83826e3b0011afd1d0
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Wed Nov 8 14:04:50 2017 +0000

    bitbake: tinfoil: Ensure we clean up loggers
    
    This is primarily paranoid but ensure we remove any loggers we setup
    either directly or indirectly so the initial state is restored after
    we exit.
    
    (Bitbake rev: 230493d9b99f7d315bc4e5e8d0093bd62ec8f9eb)
    
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
    (cherry picked from commit af7d63b1f76fd3f7fa92ed15ae61ca47d9e13472)
    Signed-off-by: Armin Kuster <akuster808 gmail com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/tinfoil.py |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index fb2ee4a..fa95f63 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -322,14 +322,14 @@ class Tinfoil:
         self.server_connection = None
         self.recipes_parsed = False
         self.quiet = 0
+        self.oldhandlers = self.logger.handlers[:]
         if setup_logging:
             # This is the *client-side* logger, nothing to do with
             # logging messages from the server
-            oldhandlers = self.logger.handlers[:]
             bb.msg.logger_create('BitBake', output)
             self.localhandlers = []
             for handler in self.logger.handlers:
-                if handler not in oldhandlers:
+                if handler not in self.oldhandlers:
                     self.localhandlers.append(handler)
 
     def __enter__(self):
@@ -835,6 +835,12 @@ class Tinfoil:
             self.server_connection.terminate()
             self.server_connection = None
 
+        # Restore logging handlers to how it looked when we started
+        if self.oldhandlers:
+            for handler in self.logger.handlers:
+                if handler not in self.oldhandlers:
+                    self.logger.handlers.remove(handler)
+
     def _reconvert_type(self, obj, origtypename):
         """
         Convert an object back to the right type, in the case


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]