summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-04-25 22:20:11 +0100
committerAnuj Mittal <anuj.mittal@intel.com>2020-05-19 15:06:08 +0800
commit6893eb741c4cd4849e2fde1f86d9911b6c89db5b (patch)
tree395385dc76283a2762ee07cfbc3b653ec1a1d39a /meta
parent19120fce4f55f6a2903812ed9461273a85cb3544 (diff)
downloadopenembedded-core-contrib-6893eb741c4cd4849e2fde1f86d9911b6c89db5b.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) 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>
Diffstat (limited to 'meta')
-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 1445e3ecfb9..41557dc2241 100644
--- a/meta/lib/oeqa/targetcontrol.py
+++ b/meta/lib/oeqa/targetcontrol.py
@@ -117,9 +117,9 @@ class QemuTarget(BaseTarget):
import oe.path
bb.utils.mkdirhier(self.testdir)
self.qemurunnerlog = os.path.join(self.testdir, 'qemurunner_log.%s' % self.datetime)
- loggerhandler = logging.FileHandler(self.qemurunnerlog)
- loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
- self.logger.addHandler(loggerhandler)
+ self.loggerhandler = logging.FileHandler(self.qemurunnerlog)
+ self.loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
+ self.logger.addHandler(self.loggerhandler)
oe.path.symlink(os.path.basename(self.qemurunnerlog), os.path.join(self.testdir, 'qemurunner_log'), force=True)
if d.getVar("DISTRO") == "poky-tiny":
@@ -182,6 +182,7 @@ class QemuTarget(BaseTarget):
def stop(self):
self.runner.stop()
+ self.logger.removeHandler(self.loggerhandler)
self.connection = None
self.ip = None
self.server_ip = None