Looking at the code that warning is from here:
```
static void qxl_send_events(PCIQXLDevice *d, uint32_t events)
{
uint32_t old_pending;
uint32_t le_events = cpu_to_le32(events);
trace_qxl_send_events(d->id, events);
if (!qemu_spice_display_is_running(&d->ssd)) {
/* spice-server tracks guest running state and should not do this */ fprintf(stderr, "%s: spice-server bug: guest stopped, ignoring\n", __func__); trace_qxl_send_events_vm_stopped(d->id, events);
return;
}
```
That explains a bit why it isn't fatal at first, all that happens is the
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_events(qxl, QXL_INTERRUPT_ERROR);
2 qxl.c 663 qxl_send_events(qxl, QXL_INTERRUPT_DISPLAY);
3 qxl.c 725 qxl_send_events(d, QXL_INTERRUPT_DISPLAY);
4 qxl.c 822 qxl_send_events(qxl, QXL_INTERRUPT_CURSOR);
5 qxl.c 925 qxl_send_events(qxl, QXL_INTERRUPT_IO_CMD);
6 qxl.c 1019 qxl_send_events(qxl, QXL_INTERRUPT_CLIENT);
7 qxl.c 1123 qxl_send_events(qxl, QXL_INTERRUPT_CLIENT_MONITORS_CONFIG);
8 qxl.c 1634 qxl_send_events(d, QXL_INTERRUPT_IO_CMD);
9 qxl.c 1833 qxl_send_events(d, QXL_INTERRUPT_IO_CMD);
Checking related libs:
spice-protocol | 0.14.3-1 | jammy | source
spice | 0.15.0-2ubuntu3 | jammy | source
=> That doesn't seem too outdated.
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.