qemu-system-x86_64: ../block/block-backend.c:1290: blk_in_drain: Assertion `qemu_in_main_thread()' failed.
Since commit f5ab12ca, using the monitor to exit qemu when a xen-block device is active leads to the following:
QEMU: Terminated
qemu-system-x86_64: ../block/block-backend.c:1290: blk_in_drain: Assertion `qemu_in_main_thread()' failed.
Aborted (core dumped)
Reported at https://lore.kernel.org/qemu-devel/61ae31ca4643b2caf703a36cebe5ed4f2abbf324.camel@infradead.org/
Backtrace:
Thread 1 "qemu-system-x86" received signal SIGABRT, Aborted.
0x00007ffff5ffc724 in __pthread_kill_implementation () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff5ffc724 in __pthread_kill_implementation () at /lib64/libc.so.6
#1 0x00007ffff5fa3d1e in raise () at /lib64/libc.so.6
#2 0x00007ffff5f8b942 in abort () at /lib64/libc.so.6
#3 0x00007ffff5f8b85e in __assert_fail_base.cold () at /lib64/libc.so.6
#4 0x00007ffff5f9be47 in __assert_fail () at /lib64/libc.so.6
#5 0x0000555555abf911 in blk_in_drain (blk=0x555557ca6680)
at ../block/block-backend.c:1290
#6 0x000055555593410c in xen_block_dataplane_stop (dataplane=0x555558982950)
at ../hw/block/dataplane/xen-block.c:695
#7 0x000055555593441a in xen_block_dataplane_stop (dataplane=<optimized out>)
at ../hw/block/dataplane/xen-block.c:689
#8 0x00005555555dfd5e in xen_block_disconnect
(xendev=xendev@entry=0x55555880aa60, errp=<optimized out>)
at ../hw/block/xen-block.c:172
#9 0x00005555555dfeca in xen_block_unrealize (xendev=0x55555880aa60)
at ../hw/block/xen-block.c:282
#10 0x000055555578ef71 in xen_device_unrealize (dev=<optimized out>)
at ../hw/xen/xen-bus.c:978
#11 0x0000555555bfe65f in notifier_list_notify (list=<optimized out>, data=0x0)
at ../util/notify.c:39
#12 0x00007ffff5fa6461 in __run_exit_handlers () at /lib64/libc.so.6
#13 0x00007ffff5fa652e in exit () at /lib64/libc.so.6
#14 0x0000555555b523dc in qemu_default_main (opaque=opaque@entry=0x0)
#15 0x00005555555609c0 in main (argc=<optimized out>, argv=<optimized out>) at ../system/main.c:76