diff options
Diffstat (limited to 'results/classifier/118/unknown/1924912')
| -rw-r--r-- | results/classifier/118/unknown/1924912 | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/results/classifier/118/unknown/1924912 b/results/classifier/118/unknown/1924912 new file mode 100644 index 000000000..3ab762dfe --- /dev/null +++ b/results/classifier/118/unknown/1924912 @@ -0,0 +1,210 @@ +user-level: 0.830 +hypervisor: 0.827 +mistranslation: 0.821 +virtual: 0.814 +vnc: 0.812 +KVM: 0.808 +peripherals: 0.806 +architecture: 0.802 +debug: 0.801 +semantic: 0.795 +permissions: 0.795 +device: 0.792 +register: 0.792 +assembly: 0.790 +graphic: 0.786 +arm: 0.785 +performance: 0.785 +TCG: 0.785 +PID: 0.785 +socket: 0.782 +ppc: 0.780 +kernel: 0.780 +risc-v: 0.778 +network: 0.773 +VMM: 0.768 +x86: 0.768 +boot: 0.763 +files: 0.761 +i386: 0.760 + +VirtIO drivers don't work on Windows: "GLib: Too many handles to wait for!" crash + +I ran SerenityOS <https://github.com/SerenityOS/serenity> out of WSL2 with native Windows QEMU. The system runs fine on the Linux QEMU (with Windows X-Server). However, with Windows QEMU I get a hard crash after the following output: + +``` +[#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 lines starting with [ are SerenityOS output; QEMU warns "GLib: Too many handles to wait for!" and crashes right after (can't even Ctrl-C in the WSL command line, force-close in Windows necessary). A window is still spawned but as the OS already switched out of text mode, just a black screen is visible as QEMU crashes. + +I first thought this to be an issue with SerenityOS and reported it over there: <https://github.com/SerenityOS/serenity/issues/6422>. The kernel devs pointed out that this seems to be a VirtIO driver/device issue on the Windows build of QEMU, because the Serenity kernel tries to initialize VirtIO devices which apparently crashes QEMU. There will be mitigations from the SerenityOS side (by allowing to disable VirtIO on boot) but it would of course be great if QEMU handled this properly. + +Version info: Both QEMU 6.0.0-rc3 and 5.2.0 exhibit this issue. Windows release is 20H2, WSL2 is running Debian 10.9. SerenityOS has no proper version but it was reproduced on the most current commits as of 18/04/2021. + +Did you build your own Windows binary based on the official sources? Or did you use a precompiled binary? If yes, which one? + +Please describe the exact steps to reproduce the issue. + +I used the pre-built binaries with the versions described above. I did not change any install options so this can be reproduced after using the official install binaries for each version. + +Le 19/04/2021 à 12:39, Stefan Weil a écrit : +> I can confirm the issue also with latest official QEMU sources. +> +> Related issue URLs: +> +> https://github.com/tesseract-ocr/tesseract/issues/2838 +> +> https://bugs.launchpad.net/qemu/+bug/1924912 +> +> Instructions and files required to reproduce the issue: +> +> https://qemu.weilnetz.de/test/bugs/1924912/ +> +> Michael, Laurent, maybe you have an idea how to narrow down this issue? + +Could it be related to the number of file descriptors that can differ between linux an windows? + +We have a series of patches that sets the number of queues to the number of vCPU: + +a4eef0711b2c vhost-user-blk-pci: default num_queues to -smp N +9445e1e15e66 virtio-blk-pci: default num_queues to -smp N +6a558822849f virtio-scsi-pci: default num_queues to -smp N +4e5163bd8444 virtio-scsi: introduce a constant for fixed virtqueues +1436f32a84c3 virtio-pci: add virtio_pci_optimal_num_queues() helper + +And I think it can have inpact on the number of open file descriptors. + +You can try by specifiying "num_queues=1" with the virtio interfaces on the QEMU command line. +(ot choose a machine type earlier than 5.2) + +Thanks, +Laurent + + +The QEMU project is currently moving its bug tracking to another system. +For this we need to know which bugs are still valid and which could be +closed already. Thus we are setting the bug state to "Incomplete" now. + +If the bug has already been fixed in the latest upstream version of QEMU, +then please close this ticket as "Fix released". + +If it is not fixed yet and you think that this bug report here is still +valid, then you have two options: + +1) If you already have an account on gitlab.com, please open a new ticket +for this problem in our new tracker here: + + https://gitlab.com/qemu-project/qemu/-/issues + +and then close this ticket here on Launchpad (or let it expire auto- +matically after 60 days). Please mention the URL of this bug ticket on +Launchpad in the new ticket on GitLab. + +2) If you don't have an account on gitlab.com and don't intend to get +one, but still would like to keep this ticket opened, then please switch +the state back to "New" or "Confirmed" within the next 60 days (other- +wise it will get closed as "Expired"). We will then eventually migrate +the ticket automatically to the new system (but you won't be the reporter +of the bug in the new system and thus you won't get notified on changes +anymore). + +Thank you and sorry for the inconvenience. + + +Moved to https://gitlab.com/qemu-project/qemu/-/issues/332 + +So it's a virtio console issue on a windows host. + +[#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! + +Laurent? + + +On Mon, Apr 19, 2021 at 04:30:23PM +0200, Laurent Vivier wrote: +> Le 19/04/2021 à 12:39, Stefan Weil a écrit : +> > I can confirm the issue also with latest official QEMU sources. +> > +> > Related issue URLs: +> > +> > https://github.com/tesseract-ocr/tesseract/issues/2838 +> > +> > https://bugs.launchpad.net/qemu/+bug/1924912 +> > +> > Instructions and files required to reproduce the issue: +> > +> > https://qemu.weilnetz.de/test/bugs/1924912/ +> > +> > Michael, Laurent, maybe you have an idea how to narrow down this issue? +> +> Could it be related to the number of file descriptors that can differ between linux an windows? +> +> We have a series of patches that sets the number of queues to the number of vCPU: +> +> a4eef0711b2c vhost-user-blk-pci: default num_queues to -smp N +> 9445e1e15e66 virtio-blk-pci: default num_queues to -smp N +> 6a558822849f virtio-scsi-pci: default num_queues to -smp N +> 4e5163bd8444 virtio-scsi: introduce a constant for fixed virtqueues +> 1436f32a84c3 virtio-pci: add virtio_pci_optimal_num_queues() helper +> +> And I think it can have inpact on the number of open file descriptors. +> +> You can try by specifiying "num_queues=1" with the virtio interfaces on the QEMU command line. +> (ot choose a machine type earlier than 5.2) +> +> Thanks, +> Laurent + + + +Le 26/05/2021 à 11:47, mst a écrit : +> So it's a virtio console issue on a windows host. +> +> [#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! +> +> Laurent? + +I will answer on gitlab issue: + +https://gitlab.com/qemu-project/qemu/-/issues/332 + + |