summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-04-25 22:20:11 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-06-02 13:32:49 +0100
commit611e3276ecf4b045cad8ffd58210c52f435e2e44 (patch)
tree05eca719a335d40ec9b95e74b5d629ec4a7801e6 /meta/lib
parent6dc7ae4ff932642955f54d1c3e63f4729f504b68 (diff)
downloadpoky-611e3276ecf4b045cad8ffd58210c52f435e2e44.tar.gz
targetcontrol: Fix leaking log handler
We had a mystery failure on the autobuilder where runqemu appeared to be failing as a logfile directory no longer existed. The key to reproducing was running a runqemu where the image was deleted (as devtool does), then running another runqemu test. E.g.: 'oe-selftest -r devtool.DevtoolExtractTests.test_devtool_deploy_target wic.Wic2.test_qemu_efi' This then tries to write to the logfile from the first test, the image directory was deleted and we get strange failures. The fix is to remove the logging handler when qemu is stopped. (From OE-Core rev: 924b020eacf111b4fd4d731b363084e254a3422d) (From OE-Core rev: 6893eb741c4cd4849e2fde1f86d9911b6c89db5b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 9b335fa867805f612154ae92c5a1e727d3fb29ca) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/targetcontrol.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py
index 1445e3ecfb..41557dc224 100644
--- a/meta/lib/oeqa/targetcontrol.py
+++ b/meta/lib/oeqa/targetcontrol.py
@@ -117,9 +117,9 @@ class QemuTarget(BaseTarget):
117 import oe.path 117 import oe.path
118 bb.utils.mkdirhier(self.testdir) 118 bb.utils.mkdirhier(self.testdir)
119 self.qemurunnerlog = os.path.join(self.testdir, 'qemurunner_log.%s' % self.datetime) 119 self.qemurunnerlog = os.path.join(self.testdir, 'qemurunner_log.%s' % self.datetime)
120 loggerhandler = logging.FileHandler(self.qemurunnerlog) 120 self.loggerhandler = logging.FileHandler(self.qemurunnerlog)
121 loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) 121 self.loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
122 self.logger.addHandler(loggerhandler) 122 self.logger.addHandler(self.loggerhandler)
123 oe.path.symlink(os.path.basename(self.qemurunnerlog), os.path.join(self.testdir, 'qemurunner_log'), force=True) 123 oe.path.symlink(os.path.basename(self.qemurunnerlog), os.path.join(self.testdir, 'qemurunner_log'), force=True)
124 124
125 if d.getVar("DISTRO") == "poky-tiny": 125 if d.getVar("DISTRO") == "poky-tiny":
@@ -182,6 +182,7 @@ class QemuTarget(BaseTarget):
182 182
183 def stop(self): 183 def stop(self):
184 self.runner.stop() 184 self.runner.stop()
185 self.logger.removeHandler(self.loggerhandler)
185 self.connection = None 186 self.connection = None
186 self.ip = None 187 self.ip = None
187 self.server_ip = None 188 self.server_ip = None