On Sun, Jul 16, 2023 at 04:10:56PM +0100, Richard W.M. Jones wrote:
On Sat, Jul 15, 2023 at 08:49:51PM -0500, Eric Blake wrote:
> A compliant server should not send NBD_REPLY_TYPE_BLOCK_STATUS unless
> we successfully negotiated a meta context. And our default strictness
> settings refuse to let us send NBD_CMD_BLOCK_STATUS unless we
> negotiated a meta context. But when you mix non-default settings
> (using nbd_set_strict to disable STRICT_COMMANDS) to send a block
> status without having negotiated it, coupled with a non-compliant
> server that responds with status anyways, we can then hit the
> assertion failure where h->meta_valid is not set during the
> REPLY.CHUNK_REPLY.RECV_BS_ENTRIES state.
>
Thanks. I think this is worth a note in docs/libnbd-security.pod too.
Done in 61f8cf661f
The pipeline failed after you pushed this:
https://gitlab.com/nbdkit/libnbd/-/pipelines/932589424
but I think it's an unrelated OCaml failure. I'll take a proper look
at it tomorrow.
My first reaction on seeing the failure message was to click the retry
button in the UI; and that gave me a green checkmark before I had time
to investigate what failed. We may be up against a pre-existing
transient failure; I'll try and keep an eye out for a recurrence.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization:
qemu.org |
libvirt.org