We added -no-reboot unconditionally to QEMU in #65, which we had to revert in #95 to avoid missing potential problems (#94).
-no-reboot is helpful for avoiding timeout overhead but we need to be able to determine when a machine has panicked and gone to reboot versus exiting cleanly. pvpanic aims to make that possible from my understanding but we cannot guarantee that CONFIG_PVPANIC is enabled in the kernels that we are booting.
@ojeda suggested that we could echo some string like we print /proc/version before shutting down the machine then check for that string to know whether or not a boot is successful. There are two immediate downsides I see to this approach versus our current relying on timeout strategy:
Having to rebuild the rootfs images, which increases the repo size (perhaps we should explore setting up a separate repo for those images and making it a submodule of this one?)
Other projects using boot-utils (such as my personal testing framework) will have to code the same logic as our CI for parsing the output of QEMU (not difficult, so who cares).
We added
-no-reboot
unconditionally to QEMU in #65, which we had to revert in #95 to avoid missing potential problems (#94).-no-reboot
is helpful for avoiding timeout overhead but we need to be able to determine when a machine has panicked and gone to reboot versus exiting cleanly.pvpanic
aims to make that possible from my understanding but we cannot guarantee thatCONFIG_PVPANIC
is enabled in the kernels that we are booting.@ojeda suggested that we could echo some string like we print
/proc/version
before shutting down the machine then check for that string to know whether or not a boot is successful. There are two immediate downsides I see to this approach versus our current relying on timeout strategy: