On Tue, Aug 03, 2021 at 02:39:44PM -0500, Eric Blake wrote:
If the other end of the http connection is not multi-conn
consistent,
then you do indeed have to flush ALL of the http connections; at which
point, you are somewhat recreating the effects of the nbdkit
multi-conn filter. However, the multi-conn filter only knows how to
propagate flush across openings into the plugin, and not into the pool
of http connections embedded within the plugin, so the duplication is
probably necessary rather than relying on the filter.
Eric refers to
https://libguestfs.org/nbdkit-multi-conn-filter.1.html
in multi-conn-mode=emulate mode.
>
> close:
> - called once per nbd connection
> - close all connections on first call
> - does nothing on later call
Or do you want it to be more reference-counted, where it leaves all
connections open until the LAST nbd connection is closed?
This was a mistake in the patch I posted. In my copy, close() is not
present and instead the pool is closed in .cleanup:
def cleanup():
close_http_pool(pool)
This requires the following nbdkit change:
https://gitlab.com/nbdkit/nbdkit/-/commit/f2fe99e4b0f54467ab8028eaf2d039c...
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html