We had debugging for qemu faiing to start which was no longer reachable after the QMP changes. Reorder the code to enable this debugging to work again which may allow insight into autobuilder failures in this area.
Signed-off-by: Richard Purdie <[email protected]> --- meta/lib/oeqa/utils/qemurunner.py | 50 ++++++++++++++----------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index d31c98d5890..24af2fb20bb 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -277,14 +277,33 @@ class QemuRunner: if self.runqemu_exited: self.logger.warning("runqemu after timeout") - return False if self.runqemu.returncode: self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode) - return False if not self.is_alive(): - self.logger.warning('is_alive() failed later') + self.logger.error("Qemu pid didn't appear in %s seconds (%s)" % + (self.runqemutime, time.strftime("%D %H:%M:%S"))) + + qemu_pid = None + if os.path.isfile(self.qemu_pidfile): + with open(self.qemu_pidfile, 'r') as f: + qemu_pid = f.read().strip() + + self.logger.error("Status information, poll status: %s, pidfile exists: %s, pidfile contents %s, proc pid exists %s" + % (self.runqemu.poll(), os.path.isfile(self.qemu_pidfile), str(qemu_pid), os.path.exists("/proc/" + str(qemu_pid)))) + + # Dump all processes to help us to figure out what is going on... + 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: + self.logger.error("Output from runqemu:\n%s" % op) + else: + self.logger.error("No output from runqemu.\n") return False # Create the client socket for the QEMU Monitor Control Socket @@ -343,31 +362,6 @@ class QemuRunner: # Release the qemu process to continue running self.run_monitor('cont') - if not self.is_alive(): - self.logger.error("Qemu pid didn't appear in %s seconds (%s)" % - (self.runqemutime, time.strftime("%D %H:%M:%S"))) - - qemu_pid = None - if os.path.isfile(self.qemu_pidfile): - with open(self.qemu_pidfile, 'r') as f: - qemu_pid = f.read().strip() - - self.logger.error("Status information, poll status: %s, pidfile exists: %s, pidfile contents %s, proc pid exists %s" - % (self.runqemu.poll(), os.path.isfile(self.qemu_pidfile), str(qemu_pid), os.path.exists("/proc/" + str(qemu_pid)))) - - # Dump all processes to help us to figure out what is going on... - 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: - self.logger.error("Output from runqemu:\n%s" % op) - else: - self.logger.error("No output from runqemu.\n") - return False - # We are alive: qemu is running out = self.getOutput(output) netconf = False # network configuration is not required by default -- 2.30.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#152474): https://lists.openembedded.org/g/openembedded-core/message/152474 Mute This Topic: https://lists.openembedded.org/mt/83214971/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
