<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 29, 2014 at 9:50 AM, zhou link <span dir="ltr"><<a href="mailto:freboat@gmail.com" target="_blank">freboat@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">here hit an assertion:<div><br></div><div><div>qemu-system-x86_64 -monitor stdio -vga qxl -spice port=7777,disable-ticketing</div>

<div>(/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 </div>
<div> </div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div><div>QEMU 2.0.0 monitor - type 'help' for more information</div>

<div>(qemu) </div><div>(qemu) </div><div>(qemu) </div><div>(qemu) device_add qxl</div><div>(/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</div>


</div><div><br></div></div></blockquote><div><br>Breakpoint 3, qemu_spice_display_stop () at ui/spice-core.c:922<br>922        spice_server_vm_stop(spice_<div>server);<br>(gdb) bt<br>#0  qemu_spice_display_stop () at ui/spice-core.c:922<br>
#1  0x0000555555806910 in qxl_hard_reset (d=0x555556612660, loadvm=0) at hw/display/qxl.c:1158<br>
#2  0x00005555558069b9 in qxl_reset_handler (dev=0x555556612660) at hw/display/qxl.c:1184<br>#3  0x00005555557d25a9 in device_reset (dev=0x555556612660) at hw/core/qdev.c:996<br>#4  0x00005555557d1e85 in device_set_realized (obj=0x555556612660, value=true, errp=0x7fffffffc298)<br>

    at hw/core/qdev.c:833<br>#5  0x00005555558c76c7 in property_set_bool (obj=0x555556612660, v=0x55555637d770, opaque=0x55555639ddb0, <br>    name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:1421<br>

#6  0x00005555558c6245 in object_property_set (obj=0x555556612660, v=0x55555637d770, <br>    name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:819<br>#7  0x00005555558c7d0f in object_property_set_qobject (obj=0x555556612660, value=0x555556388f50, <br>

    name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/qom-qobject.c:24<br>#8  0x00005555558c6490 in object_property_set_bool (obj=0x555556612660, value=true, <br>    name=0x5555559ae629 "realized", errp=0x7fffffffc298) at qom/object.c:883<br>

#9  0x000055555570fda2 in qdev_device_add (opts=0x5555565bbca0) at qdev-monitor.c:560<br></div> </div><div> <br>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, <br>
</div><div><br>In Spice server, handle_dev_stop:<br>-    spice_assert(worker->running);<br>+    if (!worker->running)<br>+        return;<br>+<br></div><div><br>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?<br>
<br><br></div></div>cheers<br></div><div class="gmail_extra"><br clear="all"><br>-- <br>Marc-André Lureau
</div></div>