Richard W.M. Jones
2020-Mar-04 15:15 UTC
[Libguestfs] [PATCH nbdkit] server: Only display "close: " debug message if callback is called.
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(-) 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 -- 2.25.0
Eric Blake
2020-Mar-04 15:57 UTC
Re: [Libguestfs] [PATCH nbdkit] server: Only display "close: " debug message if callback is called.
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
Richard W.M. Jones
2020-Mar-04 16:16 UTC
Re: [Libguestfs] [PATCH nbdkit] server: Only display "close: " debug message if callback is called.
On Wed, Mar 04, 2020 at 09:57:12AM -0600, Eric Blake wrote:> 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.Thanks, I pushed this with the same change made to .finalize too. Rich.> > > >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-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
Reasonably Related Threads
- Re: [PATCH nbdkit] server: Only display "close: " debug message if callback is called.
- [PATCH nbdkit 1/3] server: Rename global backend pointer to "top".
- [PATCH nbdkit 2/3] server: Rename ‘struct b_conn_handle’ to plain ‘struct handle’.
- [PATCH nbdkit v2 0/3] server: Remove explicit connection parameter.
- [PATCH nbdkit 0/3] server: Remove explicit connection parameter.