qxl_send_events: spice-server bug: guest stopped, ignoring
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
spice-xpi |
Fix Released
|
Unknown
|
|||
qemu (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
spice (Ubuntu) |
Fix Released
|
Medium
|
Christian Ehrhardt |
Bug Description
When starting KVM guest I saw this error on recent Ubuntu:
"qxl_send_events: spice-server bug: guest stopped, ignoring"
Note: the common way how libvirt 8.0 sets up a guest by default also triggers
this (this is what got me started to search for it).
Since graphic related things could be odd on servers I connected an X stack.
But still, when using `-vga qxl` I see this message.
The message happens for all display types -display [vnc gtk none sdl]
Also if vnc and spice are present (for the sake of initializing backends)
$ qemu-system-x86_64 -cpu host -machine q35,accel=kvm -m 512M \
-kernel /boot/vmlinuz \
-vga qxl -display vnc=:0 -spice port=5903,
...
qxl_send_events: spice-server bug: guest stopped, ignoring
This was working prior to qemu 6.2
The fail seems to be non-fatal, the guest worked to present boot console
just fine. Booting the same into a UI e.g. an Ubuntu install ISO TODO.
qemu-system-x86_64 -smp 2 -cpu host -machine ubuntu,accel=kvm -m 1024M \
-vga qxl -display vnc=:0 \
-boot d -cdrom ubuntu-
^^ works including bootsplash graphics as well as the UI stack in gnome is
happy with QXL. This is true for local windows (e.g. gtk) as well as
connections via spice client.
So it is not fatal, but disturbing it is still ...
I found quite some web-hits of this error signature, but mostly in regard to
un-raid. I failed to find why they faced it and what their fix was. mostly
discussions and hints to reboot to fix.
I also found some very old bugs and references:
- https:/
- https:/
But while not seeing an issue about the error itself I see the error message
present on a few recent issue reports - but in none of these it was the topic
that was up for debate:
- https:/
- https:/
- https:/
Related branches
- git-ubuntu bot: Approve
- Paride Legovini (community): Approve
- Canonical Server Reporter: Pending requested
-
Diff: 382 lines (+288/-2)4 files modifieddebian/changelog (+229/-0)
debian/control (+3/-2)
debian/patches/Revert-reds-start-QXL-devices-if-VM-is-running-fix-r.patch (+55/-0)
debian/patches/series (+1/-0)
- Sergio Durigan Junior (community): Approve
- Canonical Server: Pending requested
- git-ubuntu import: Pending requested
-
Diff: 85 lines (+63/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/Revert-reds-start-QXL-devices-if-VM-is-running-fix-r.patch (+55/-0)
debian/patches/series (+1/-0)
tags: | removed: server-triage-discuss |
Changed in spice (Ubuntu): | |
assignee: | nobody → Lena Voytek (lvoytek) |
Changed in spice-xpi: | |
status: | Unknown → Fix Released |
Looking at the code that warning is from here: events( PCIQXLDevice *d, uint32_t events) le32(events) ;
```
static void qxl_send_
{
uint32_t old_pending;
uint32_t le_events = cpu_to_
trace_ qxl_send_ events( d->id, events); spice_display_ is_running( &d->ssd) ) {
fprintf( stderr, "%s: spice-server bug: guest stopped, ignoring\n",
__func_ _);
trace_ qxl_send_ events_ vm_stopped( d->id, events);
if (!qemu_
/* spice-server tracks guest running state and should not do this */
return;
}
```
That explains a bit why it isn't fatal at first, all that happens is the events( qxl, QXL_INTERRUPT_ ERROR); events( qxl, QXL_INTERRUPT_ DISPLAY) ; DISPLAY) ; events( qxl, QXL_INTERRUPT_ CURSOR) ; events( qxl, QXL_INTERRUPT_ IO_CMD) ; events( qxl, QXL_INTERRUPT_ CLIENT) ; events( qxl, QXL_INTERRUPT_ CLIENT_ MONITORS_ CONFIG) ; IO_CMD) ; IO_CMD) ;
error message followed by stopping the trace again.
But it does an early return from qxl_send_events and thereby that will
never work. Here a list of later calls that I now wonder if they'd fail as well:
1 qxl.c 129 qxl_send_
2 qxl.c 663 qxl_send_
3 qxl.c 725 qxl_send_events(d, QXL_INTERRUPT_
4 qxl.c 822 qxl_send_
5 qxl.c 925 qxl_send_
6 qxl.c 1019 qxl_send_
7 qxl.c 1123 qxl_send_
8 qxl.c 1634 qxl_send_events(d, QXL_INTERRUPT_
9 qxl.c 1833 qxl_send_events(d, QXL_INTERRUPT_
Checking related libs:
spice-protocol | 0.14.3-1 | jammy | source
spice | 0.15.0-2ubuntu3 | jammy | source
=> That doesn't seem too outdated.