mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 09:49:33 +02:00
testimage/oeqa: Drop testimage_dump_host functionality
The intent behind these functions was to dump the system state when issues occured but it has never really worked as we'd planned. Regular monitoring as the build runs has largely replaced this as that allows a trend to be seen rather than a spot value which was never really useful. The code is bitrotting and not functioning correctly so drop it. [YOCTO #13872] RP: Reword commit message (From OE-Core rev: dea37ba49a236029da73d5cfbfc069bffc38b508) Signed-off-by: Thomas Roos <throos@amazon.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
303421dce0
commit
f82c3bd37d
@@ -51,9 +51,7 @@ class BaseDumper(object):
|
||||
self.dump_dir = dump_dir
|
||||
|
||||
def _construct_filename(self, command):
|
||||
if isinstance(self, HostDumper):
|
||||
prefix = "host"
|
||||
elif isinstance(self, TargetDumper):
|
||||
if isinstance(self, TargetDumper):
|
||||
prefix = "target"
|
||||
elif isinstance(self, MonitorDumper):
|
||||
prefix = "qmp"
|
||||
@@ -76,22 +74,6 @@ class BaseDumper(object):
|
||||
with open(fullname, 'w') as dump_file:
|
||||
dump_file.write(output)
|
||||
|
||||
class HostDumper(BaseDumper):
|
||||
""" Class to get dumps from the host running the tests """
|
||||
|
||||
def __init__(self, cmds, parent_dir):
|
||||
super(HostDumper, self).__init__(cmds, parent_dir)
|
||||
|
||||
def dump_host(self, dump_dir=""):
|
||||
if dump_dir:
|
||||
self.dump_dir = dump_dir
|
||||
env = os.environ.copy()
|
||||
env['PATH'] = '/usr/sbin:/sbin:/usr/bin:/bin'
|
||||
env['COLUMNS'] = '9999'
|
||||
for cmd in self.cmds:
|
||||
result = runCmd(cmd, ignore_status=True, env=env)
|
||||
self._write_dump(cmd.split()[0], result.output)
|
||||
|
||||
class TargetDumper(BaseDumper):
|
||||
""" Class to get dumps from target, it only works with QemuRunner.
|
||||
Will give up permanently after 5 errors from running commands over
|
||||
|
||||
@@ -21,7 +21,6 @@ import threading
|
||||
import codecs
|
||||
import logging
|
||||
import tempfile
|
||||
from oeqa.utils.dump import HostDumper
|
||||
from collections import defaultdict
|
||||
import importlib
|
||||
|
||||
@@ -33,8 +32,8 @@ re_control_char = re.compile('[%s]' % re.escape("".join(control_chars)))
|
||||
|
||||
class QemuRunner:
|
||||
|
||||
def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds,
|
||||
use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
|
||||
def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, use_kvm, logger, use_slirp=False,
|
||||
serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
|
||||
|
||||
# Popen object for runqemu
|
||||
self.runqemu = None
|
||||
@@ -69,7 +68,6 @@ class QemuRunner:
|
||||
if not workdir:
|
||||
workdir = os.getcwd()
|
||||
self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid())
|
||||
self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
|
||||
self.monitorpipe = None
|
||||
|
||||
self.logger = logger
|
||||
@@ -138,7 +136,6 @@ class QemuRunner:
|
||||
self.logger.error('runqemu exited with code %d' % self.runqemu.returncode)
|
||||
self.logger.error('Output from runqemu:\n%s' % self.getOutput(self.runqemu.stdout))
|
||||
self.stop()
|
||||
self._dump_host()
|
||||
|
||||
def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None, discard_writes=True):
|
||||
env = os.environ.copy()
|
||||
@@ -286,7 +283,6 @@ class QemuRunner:
|
||||
if self.runqemu.returncode:
|
||||
# No point waiting any longer
|
||||
self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
|
||||
self._dump_host()
|
||||
self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output))
|
||||
self.stop()
|
||||
return False
|
||||
@@ -314,7 +310,6 @@ class QemuRunner:
|
||||
ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
|
||||
processes = ps.decode("utf-8")
|
||||
self.logger.debug("Running processes:\n%s" % processes)
|
||||
self._dump_host()
|
||||
op = self.getOutput(output)
|
||||
self.stop()
|
||||
if op:
|
||||
@@ -430,7 +425,6 @@ class QemuRunner:
|
||||
self.logger.error("Couldn't get ip from qemu command line and runqemu output! "
|
||||
"Here is the qemu command line used:\n%s\n"
|
||||
"and output from runqemu:\n%s" % (cmdline, out))
|
||||
self._dump_host()
|
||||
self.stop()
|
||||
return False
|
||||
|
||||
@@ -517,7 +511,6 @@ class QemuRunner:
|
||||
lines = tail(bootlog if bootlog else self.msg)
|
||||
self.logger.warning("Last 25 lines of text (%d):\n%s" % (len(bootlog), lines))
|
||||
self.logger.warning("Check full boot log: %s" % self.logfile)
|
||||
self._dump_host()
|
||||
self.stop()
|
||||
return False
|
||||
|
||||
@@ -698,13 +691,6 @@ class QemuRunner:
|
||||
status = 1
|
||||
return (status, str(data))
|
||||
|
||||
|
||||
def _dump_host(self):
|
||||
self.host_dumper.create_dir("qemu")
|
||||
self.logger.warning("Qemu ended unexpectedly, dump data from host"
|
||||
" is in %s" % self.host_dumper.dump_dir)
|
||||
self.host_dumper.dump_host()
|
||||
|
||||
# This class is for reading data from a socket and passing it to logfunc
|
||||
# to be processed. It's completely event driven and has a straightforward
|
||||
# event loop. The mechanism for stopping the thread is a simple pipe which
|
||||
|
||||
Reference in New Issue
Block a user