virtual: 0.825 PID: 0.799 peripherals: 0.785 network: 0.772 ppc: 0.751 kernel: 0.708 device: 0.688 graphic: 0.682 socket: 0.679 arm: 0.659 hypervisor: 0.653 files: 0.651 performance: 0.596 debug: 0.596 boot: 0.568 architecture: 0.564 register: 0.562 vnc: 0.548 KVM: 0.539 permissions: 0.529 TCG: 0.522 risc-v: 0.507 i386: 0.494 VMM: 0.489 semantic: 0.435 user-level: 0.420 mistranslation: 0.340 x86: 0.276 assembly: 0.247 spice-qemu-char.c Assert spice-qemu-char.c:173: spice_chr_add_watch: Assertion `cond == G_IO_OUT' failed. I trace the code virtio-console.c: ret = qemu_chr_fe_write(vcon->chr, buf, len); trace_virtio_console_flush_buf(port->id, len, ret); if (ret < len) { VirtIOSerialPortClass *k = VIRTIO_SERIAL_PORT_GET_CLASS(port); /* * Ideally we'd get a better error code than just -1, but * that's what the chardev interface gives us right now. If * we had a finer-grained message, like -EPIPE, we could close * this connection. */ if (ret < 0) ret = 0; if (!k->is_console) { virtio_serial_throttle_port(port, true); if (!vcon->watch) { vcon->watch = qemu_chr_fe_add_watch(vcon->chr, G_IO_OUT|G_IO_HUP, chr_write_unblocked, vcon); } } } and spice-qemu-char.c in function:spice_chr_add_watch assert(cond == G_IO_OUT); so run in this code,will trigger this assert. My qemu version is 2.3.0 and spice-server version is 0.12.5 called param is G_IO_OUT|G_IO_HUP,but assert (cond == G_IO_OUT) I think this is fixed by: commit f7a8beb5e6a13dc924895244777d9ef08b23b367 Author: Marc-André Lureau