serenity: Run: QEMU crashes on "GLib: Too many handles to wait for!" when using WSL2 with Windows-native QEMU

Running SerenityOS on Windows 10 20H2 with WSL2 Debian 10.9. Debian’s QEMU can start just fine with an X Server on the host machine. However, when switching over to native QEMU (newest version) and setting the options as required:

export SERENITY_QEMU_BIN='/mnt/c/Program Files/qemu/qemu-system-i386.exe'
export SERENITY_DISK_IMAGE='[...]\serenity\Build\i686\_disk_image'

QEMU will start up but hang at the following message:

[#0 colonel(0:0)]: Scheduler[0]: idle loop running
[init_stage2(2:2)]: PCI [0000:00:00:00] PCI::ID [8086:1237]
[init_stage2(2:2)]: PCI [0000:00:01:00] PCI::ID [8086:7000]
[init_stage2(2:2)]: PCI [0000:00:01:01] PCI::ID [8086:7010]
[init_stage2(2:2)]: PCI [0000:00:01:02] PCI::ID [8086:7020]
[init_stage2(2:2)]: PCI [0000:00:01:03] PCI::ID [8086:7113]
[init_stage2(2:2)]: PCI [0000:00:02:00] PCI::ID [1234:1111]
[init_stage2(2:2)]: PCI [0000:00:03:00] PCI::ID [8086:2922]
[init_stage2(2:2)]: PCI [0000:00:04:00] PCI::ID [1af4:1003]
[init_stage2(2:2)]: PCI [0000:00:05:00] PCI::ID [1af4:1005]
[init_stage2(2:2)]: PCI [0000:00:06:00] PCI::ID [8086:100e]
[#0 init_stage2(2:2)]: BXVGA: framebuffer @ P0xf8000000
[#0 init_stage2(2:2)]: BXVGADevice resolution set to 1024x768 (pitch=4096)
[init_stage2(2:2)]: UHCI: Controller found PCI::ID [8086:7020] @ PCI [0000:00:01:02]
[init_stage2(2:2)]: UHCI: I/O base IO c080
[init_stage2(2:2)]: UHCI: Interrupt line: 11
[#0 init_stage2(2:2)]: UHCI: Allocated framelist at physical address P0x00e40000
[#0 init_stage2(2:2)]: UHCI: Framelist is at virtual address V0xc115d000
[#0 init_stage2(2:2)]: UHCI: QH(0xc115f000) @ 14946304: link_ptr=14946338, element_link_ptr=1
[#0 init_stage2(2:2)]: UHCI: QH(0xc115f020) @ 14946336: link_ptr=14946370, element_link_ptr=1
[#0 init_stage2(2:2)]: UHCI: QH(0xc115f040) @ 14946368: link_ptr=14946402, element_link_ptr=1
[#0 init_stage2(2:2)]: UHCI: QH(0xc115f060) @ 14946400: link_ptr=14946434, element_link_ptr=1
[#0 init_stage2(2:2)]: UHCI: QH(0xc115f080) @ 14946432: link_ptr=14958593, element_link_ptr=1
[#0 init_stage2(2:2)]: UHCI: Reset completed
[#0 init_stage2(2:2)]: UHCI: Started
[#0 init_stage2(2:2)]: DMIExpose: SMBIOS 32bit Entry point @ P0x000f5870
[#0 init_stage2(2:2)]: DMIExpose: Data table @ P0x000f5890
[#0 init_stage2(2:2)]: VirtIOConsole: Found @ PCI [0000:00:04:00]
[#0 init_stage2(2:2)]: Trying to unregister unused handler (?)
[#0 init_stage2(2:2)]: VirtIOConsole: Multi port is not yet supported!
[#0 init_stage2(2:2)]: VirtIOConsole: cols: 0, rows: 0, max nr ports 0
qemu-system-i386.exe: warning: GLib: Too many handles to wait for!

The hang is so severe that even Ctrl-C doesn’t do something. The QEMU window appears but is reported as not responding almost immediately by Windows and needs to be force closed.

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 16 (7 by maintainers)

Most upvoted comments

QEMU works nicely when I remove -device virtio-serial and -device virtconsole,chardev=stdout from the command arguments.

Well yes, but that removes the VirtIO devices, so thats not very surprising :^)

QEMU works nicely when I remove -device virtio-serial and -device virtconsole,chardev=stdout from the command arguments.

Thanks for this quick info. I’ll be submitting this to their bug tracker. @IdanHo How do I specify this command-line flag?

well ill first have to add said commandline flag before you can use it 😃