scripts/e2e.sh fails at random with up did not finish in 1200s. The install completes and the disk boots, then the guest never becomes ssh-reachable.
What happens
The installed system's bootloader is configured to boot without asking:
DEFAULT menu.c32
PROMPT 0
MENU TITLE Alpine/Linux Boot Menu
MENU HIDDEN
MENU AUTOBOOT Alpine will be booted automatically in # seconds.
TIMEOUT 10
TIMEOUT 10 is one second and MENU HIDDEN means the menu is never drawn. syslinux cancels that countdown and reveals the menu when it sees input during the second. When that happens the VM waits forever:

Sending one ret over QMP unsticks it and the guest boots normally, sshd included:

Reproduction
just e2e, or stoat create X --image alpine-standard --mode disk then stoat up X. It stalls on the first boot after the installer powers off. Three runs: two stalled, one reached ssh in 20 seconds.
What it is not
- Not the bootloader config. The installed
/etc/update-extlinux.conf has timeout=1 and the generated extlinux.conf is correct.
- Not the disk. Booting the same installed disk again through
stoat up reached ssh in 40 seconds every time.
- Not
usb-tablet alone. The same disk with -device qemu-xhci -device usb-tablet and -display none booted through in 25 seconds.
- Not a key stoat sends.
core.AutoRestartAfterInstall waits for poweroff and calls Start; nothing calls qemu.SendKey on that path.
The correlation is with -display gtk,gl=on. A window opening while syslinux counts down is the suspected source of the input.
Fix candidate
syslinux TOTALTIMEOUT fires regardless of keypresses, unlike TIMEOUT. update-extlinux.conf has no knob for it, so stoat would append it to /boot/extlinux.conf after setup-disk, or drop the display until the guest answers ssh.
Found while clearing the needs-live-boot debt on #48.
scripts/e2e.shfails at random withup did not finish in 1200s. The install completes and the disk boots, then the guest never becomes ssh-reachable.What happens
The installed system's bootloader is configured to boot without asking:
TIMEOUT 10is one second andMENU HIDDENmeans the menu is never drawn. syslinux cancels that countdown and reveals the menu when it sees input during the second. When that happens the VM waits forever:Sending one
retover QMP unsticks it and the guest boots normally, sshd included:Reproduction
just e2e, orstoat create X --image alpine-standard --mode diskthenstoat up X. It stalls on the first boot after the installer powers off. Three runs: two stalled, one reached ssh in 20 seconds.What it is not
/etc/update-extlinux.confhastimeout=1and the generatedextlinux.confis correct.stoat upreached ssh in 40 seconds every time.usb-tabletalone. The same disk with-device qemu-xhci -device usb-tabletand-display nonebooted through in 25 seconds.core.AutoRestartAfterInstallwaits for poweroff and callsStart; nothing callsqemu.SendKeyon that path.The correlation is with
-display gtk,gl=on. A window opening while syslinux counts down is the suspected source of the input.Fix candidate
syslinux
TOTALTIMEOUTfires regardless of keypresses, unlikeTIMEOUT.update-extlinux.confhas no knob for it, so stoat would append it to/boot/extlinux.confaftersetup-disk, or drop the display until the guest answers ssh.Found while clearing the
needs-live-bootdebt on #48.