On 3/4/20 9:15 AM, Richard W.M. Jones wrote:
For example if .preconnect fails, it printed the debug messages:
debug: preconnect: ... debug: close: ...
This confused me into thinking that the close callback was actually being called without a corresponding open. In fact it is not called in this case. Suppress the debug message unless the callback is actually being called. --- server/backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Makes sense, but .finalize should get the same treatment since it likewise gets skipped when .prepare fails.
diff --git a/server/backend.c b/server/backend.c index 51b56a48..108f4a25 100644 --- a/server/backend.c +++ b/server/backend.c @@ -241,10 +241,10 @@ backend_close (struct backend *b) struct handle *h = get_handle (conn, b->i);
/* outer-to-inner order, opposite .open */ - controlpath_debug ("%s: close", b->name);
if (h->handle) { assert (h->state & HANDLE_OPEN); + controlpath_debug ("%s: close", b->name); b->close (b, h->handle); } else
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org