On Tue, Jul 29, 2014 at 9:50 AM, zhou link <freboat@xxxxxxxxx> wrote:
Breakpoint 3, qemu_spice_display_stop () at ui/spice-core.c:922
922 spice_server_vm_stop(spice_
In qemu, spice_server_vm_stop() is called from device "reset" when it is added, because spice_display_is_running. The spice server exposes a single state, regardless the number of devices/worker,
In Spice server, handle_dev_stop:
- spice_assert(worker->running);
+ if (!worker->running)
+ return;
+
It looks like replacing the assert with a simple check solves the issue, but I am not sure qemu or the spice code handles the rest fine. What were you trying to achieve?
cheershere hit an assertion:qemu-system-x86_64 -monitor stdio -vga qxl -spice port=7777,disable-ticketing(/home/brook/local/bin/qemu-system-x86_64:27280): Spice-Warning **: reds.c:3295:spice_server_init: [07-29 23:41:47]ct: Jul 26 2014 00:28:12
QEMU 2.0.0 monitor - type 'help' for more information(qemu)(qemu)(qemu)(qemu) device_add qxl(/home/brook/local/bin/qemu-system-x86_64:27280): SpiceWorker-ERROR **: red_worker.c:12385:handle_dev_stop: [07-29 23:41:56]assertion `worker->running' failed
Breakpoint 3, qemu_spice_display_stop () at ui/spice-core.c:922
922 spice_server_vm_stop(spice_
server);
(gdb) bt
#0 qemu_spice_display_stop () at ui/spice-core.c:922
#1 0x0000555555806910 in qxl_hard_reset (d=0x555556612660, loadvm=0) at hw/display/qxl.c:1158
#2 0x00005555558069b9 in qxl_reset_handler (dev=0x555556612660) at hw/display/qxl.c:1184
#3 0x00005555557d25a9 in device_reset (dev=0x555556612660) at hw/core/qdev.c:996
#4 0x00005555557d1e85 in device_set_realized (obj=0x555556612660, value=true, errp=0x7fffffffc298)
at hw/core/qdev.c:833
#5 0x00005555558c76c7 in property_set_bool (obj=0x555556612660, v=0x55555637d770, opaque=0x55555639ddb0,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:1421
#6 0x00005555558c6245 in object_property_set (obj=0x555556612660, v=0x55555637d770,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:819
#7 0x00005555558c7d0f in object_property_set_qobject (obj=0x555556612660, value=0x555556388f50,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/qom-qobject.c:24
#8 0x00005555558c6490 in object_property_set_bool (obj=0x555556612660, value=true,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:883
#9 0x000055555570fda2 in qdev_device_add (opts=0x5555565bbca0) at qdev-monitor.c:560
(gdb) bt
#0 qemu_spice_display_stop () at ui/spice-core.c:922
#1 0x0000555555806910 in qxl_hard_reset (d=0x555556612660, loadvm=0) at hw/display/qxl.c:1158
#2 0x00005555558069b9 in qxl_reset_handler (dev=0x555556612660) at hw/display/qxl.c:1184
#3 0x00005555557d25a9 in device_reset (dev=0x555556612660) at hw/core/qdev.c:996
#4 0x00005555557d1e85 in device_set_realized (obj=0x555556612660, value=true, errp=0x7fffffffc298)
at hw/core/qdev.c:833
#5 0x00005555558c76c7 in property_set_bool (obj=0x555556612660, v=0x55555637d770, opaque=0x55555639ddb0,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:1421
#6 0x00005555558c6245 in object_property_set (obj=0x555556612660, v=0x55555637d770,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:819
#7 0x00005555558c7d0f in object_property_set_qobject (obj=0x555556612660, value=0x555556388f50,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/qom-qobject.c:24
#8 0x00005555558c6490 in object_property_set_bool (obj=0x555556612660, value=true,
name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:883
#9 0x000055555570fda2 in qdev_device_add (opts=0x5555565bbca0) at qdev-monitor.c:560
In qemu, spice_server_vm_stop() is called from device "reset" when it is added, because spice_display_is_running. The spice server exposes a single state, regardless the number of devices/worker,
In Spice server, handle_dev_stop:
- spice_assert(worker->running);
+ if (!worker->running)
+ return;
+
It looks like replacing the assert with a simple check solves the issue, but I am not sure qemu or the spice code handles the rest fine. What were you trying to achieve?
--
Marc-André Lureau
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel