Skip to content

Post-install boot stalls at the hidden syslinux menu when a display is attached #59

Description

@NovusEdge

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:

stuck at the boot menu

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

after one keypress

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingneeds-live-bootCannot be verified by agents; needs a real Alpine boot

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions