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/f2fe99e4b0f54467ab8028eaf2d039cf91... 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