From https://autobuilder.yoctoproject.org/typhoon/#/builders/109/builds/2385/steps/13/logs/stdio WARNING: core-image-full-cmdline-1.0-r0 do_testimage: Failed to communicate with qemu monitor: Unexpected empty reply from server WARNING: core-image-full-cmdline-1.0-r0 do_testimage: qemu-system ended unexpectedly WARNING: core-image-sato-1.0-r0 do_testimage: Failed to communicate with qemu monitor: Unexpected empty reply from server WARNING: core-image-sato-1.0-r0 do_testimage: qemu-system ended unexpectedly WARNING: core-image-sato-sdk-1.0-r0 do_testimage: Failed to connect qemu monitor socket: [Errno 104] Connection reset by peer File: None WARNING: core-image-sato-sdk-1.0-r0 do_testimage: qemu-system ended unexpectedly ERROR: core-image-full-cmdline-1.0-r0 do_testimage: Error executing a python function in exec_python_func() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:do_testimage(d) 0003: File: '/home/pokybuild/yocto-worker/qemux86-64-alt/build/meta/classes/testimage.bbclass', lineno: 136, function: do_testimage 0132: query-block 0133:} 0134: 0135:python do_testimage() { *** 0136: testimage_main(d) 0137:} 0138: 0139:addtask testimage 0140:do_testimage[nostamp] = "1" File: '/home/pokybuild/yocto-worker/qemux86-64-alt/build/meta/classes/testimage.bbclass', lineno: 382, function: testimage_main 0378: orig_sigterm_handler = signal.signal(signal.SIGTERM, sigterm_exception) 0379: try: 0380: # We need to check if runqemu ends unexpectedly 0381: # or if the worker send us a SIGTERM *** 0382: tc.target.start(params=d.getVar("TEST_QEMUPARAMS"), runqemuparams=d.getVar("TEST_RUNQEMUPARAMS")) 0383: import threading 0384: try: 0385: threading.Timer(int(d.getVar("TEST_OVERALL_TIMEOUT")), handle_test_timeout, (int(d.getVar("TEST_OVERALL_TIMEOUT")),)).start() 0386: except ValueError: File: '/home/pokybuild/yocto-worker/qemux86-64-alt/build/meta/lib/oeqa/core/target/qemu.py', lineno: 77, function: start 0073: if self.runner.server_ip: 0074: self.server_ip = self.runner.server_ip 0075: else: 0076: self.stop() *** 0077: raise RuntimeError("FAILED to start qemu - check the task log and the boot log") 0078: 0079: def stop(self): 0080: self.runner.stop() Exception: RuntimeError: FAILED to start qemu - check the task log and the boot log
Richard thinks that this was due to broken test code in the build, i.e. kvm clock related. Let's use this bug to fix a reporting issue: Qemu error messages not clear when command line is corrupted.
This was triggered by a corrupted version of this change: -QB_CPU_x86 = "-cpu IvyBridge -machine q35" -QB_CPU_KVM_x86 = "-cpu IvyBridge -machine q35" +QB_CPU_x86 = "-cpu IvyBridge,-kvmclock -machine q35" +QB_CPU_KVM_x86 = "-cpu IvyBridge,-kvmclock -machine q35" -QB_CPU_x86-64 = "-cpu IvyBridge -machine q35" -QB_CPU_KVM_x86-64 = "-cpu IvyBridge -machine q35" +QB_CPU_x86-64 = "-cpu IvyBridge,-kvmclock -machine q35" +QB_CPU_KVM_x86-64 = "-cpu IvyBridge,-kvmclock -machine q35" with IvyBridge-kvmclock missing the comma. We need better log output for broken commands like this.
Adding better error reporting is more of an enhancement, IMO. It's less urgent so lower importance to Medium.