> I *think* the second patch also fixes the hangs on backup abort that I and > Dietmar noticed in v1, but I'm not sure, they we're somewhat intermittent > before too.
No, I still get this freeze: 0 0x00007f0aa4866916 in __GI_ppoll (fds=0x7f0a12935c40, nfds=2, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39 #1 0x000055d3a6c91d29 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:77 #2 0x000055d3a6c91d29 in qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>, timeout=timeout@entry=-1) at util/qemu-timer.c:335 #3 0x000055d3a6c94511 in fdmon_poll_wait (ctx=0x7f0a97505e80, ready_list=0x7fff67e5c358, timeout=-1) at util/fdmon-poll.c:79 #4 0x000055d3a6c93af7 in aio_poll (ctx=0x7f0a97505e80, blocking=blocking@entry=true) at util/aio-posix.c:589 #5 0x000055d3a6bf4cd3 in bdrv_do_drained_begin (poll=<optimized out>, ignore_bds_parents=false, parent=0x0, recursive=false, bs=0x7f0a9754c280) at block/io.c:429 #6 0x000055d3a6bf4cd3 in bdrv_do_drained_begin (bs=0x7f0a9754c280, recursive=<optimized out>, parent=0x0, ignore_bds_parents=<optimized out>, poll=<optimized out>) at block/io.c:395 #7 0x000055d3a6be5c87 in blk_drain (blk=0x7f0a97abcc00) at block/block-backend.c:1617 #8 0x000055d3a6be686d in blk_unref (blk=0x7f0a97abcc00) at block/block-backend.c:473 #9 0x000055d3a6b9e835 in block_job_free (job=0x7f0a15f44e00) at blockjob.c:89 #10 0x000055d3a6b9fe29 in job_unref (job=0x7f0a15f44e00) at job.c:376 #11 0x000055d3a6b9fe29 in job_unref (job=0x7f0a15f44e00) at job.c:368 #12 0x000055d3a6ba07aa in job_finish_sync (job=job@entry=0x7f0a15f44e00, finish=finish@entry= 0x55d3a6ba0cd0 <job_cancel_err>, errp=errp@entry=0x0) at job.c:1004 #13 0x000055d3a6ba0cee in job_cancel_sync (job=job@entry=0x7f0a15f44e00) at job.c:947