On 04/06/2017 04:15 PM, Richard W.M. Jones wrote: >>>> +++ b/block/io.c >>>> @@ -945,6 +945,8 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child, >>>> size_t skip_bytes; >>>> int ret; >>>> >>>> + assert(child->perm & (BLK_PERM_WRITE_UNCHANGED | BLK_PERM_WRITE)); >>> > https://bugzilla.redhat.com/show_bug.cgi?id=1439922 > > There is also a minimal reproducer in comment 2. If it helps, backtrace shows: #4 0x0000555555c09f10 in bdrv_co_do_copy_on_readv (child=0x555556990180, offset=0, bytes=512, qiov=0x7fffffffd0c0) at block/io.c:948 #5 0x0000555555c0a33d in bdrv_aligned_preadv (child=0x555556990180, req=0x7fffb6dffec0, offset=0, bytes=512, align=1, qiov=0x7fffffffd0c0, flags=1) at block/io.c:1058 #6 0x0000555555c0a8c3 in bdrv_co_preadv (child=0x555556990180, offset=0, bytes=512, qiov=0x7fffffffd0c0, flags=BDRV_REQ_COPY_ON_READ) at block/io.c:1166 #7 0x0000555555bf7ccf in blk_co_preadv (blk=0x555556a2bc20, offset=0, bytes=512, qiov=0x7fffffffd0c0, flags=0) at block/block-backend.c:927 #8 0x0000555555bf7e19 in blk_read_entry (opaque=0x7fffffffd0e0) at block/block-backend.c:974 #9 0x0000555555cc3015 in coroutine_trampoline (i0=1485566720, i1=21845) at util/coroutine-ucontext.c:79 -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org