On 3/23/19 7:58 AM, Richard W.M. Jones wrote:
> A good point here is what happens with the block-status
branch[1].
> Let's see:
>
> $ ./nbdkit memory size=64M --run '/home/rjones/d/qemu/qemu-img convert $nbd
/var/tmp/out'
> qemu-img: Payload too large
> nbdkit: memory.1: error: write reply: NBD_CMD_BLOCK_STATUS: Broken pipe
>
> Oh dear. I believe this is actually a bug in the block status code so
> let's see if I can narrow this down first ...
OK I fixed this bug (in nbdkit).
Which is why the block-status branch is still in flux :)
The block-status branch *works* with qemu 2.12.0, so another option
here is to do nothing and wait until that work is finished and merged.
Well, it works as long as you don't send a simple error reply (our mails
crossed, and I submitted that patch for that issue already).
NB During this I discovered another (but minor) bug in qemu. If you
feed qemu a long series of block status replies then it eventually
closes the connection. However it does not print an error message.
Which version(s) of qemu? Was REQ_ONE in force or not? Was it a long
series of status replies that could have been coalesced, or were they
alternating status? Did the replies extend beyond the client's original
request?
I'd like to reproduce the failure, to determine if qemu needs more patches.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org