19.12.2018 1:57, Eric Blake wrote: > Not all servers send free-form text alongside option error replies, but > for servers that do (such as qemu), we pass the server's message as a > hint alongside our own error reporting. However, it would also be > useful to trace such server messages, since we can't guarantee how the > hint may be consumed. > > Signed-off-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > --- > nbd/client.c | 2 ++ > nbd/trace-events | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/nbd/client.c b/nbd/client.c > index b4d457a19ad..0ad7147ed95 100644 > --- a/nbd/client.c > +++ b/nbd/client.c > @@ -171,6 +171,8 @@ static int nbd_handle_reply_err(QIOChannel *ioc, > NBDOptionReply *reply, > goto cleanup; > } > msg[reply->length] = '\0'; > + trace_nbd_server_error_msg(reply->type, > + nbd_reply_type_lookup(reply->type), msg); > } > > switch (reply->type) { > diff --git a/nbd/trace-events b/nbd/trace-events > index 5e1d4afe8e6..5492042acbf 100644 > --- a/nbd/trace-events > +++ b/nbd/trace-events > @@ -1,6 +1,7 @@ > # nbd/client.c > nbd_send_option_request(uint32_t opt, const char *name, uint32_t len) > "Sending option request %" PRIu32" (%s), len %" PRIu32 > nbd_receive_option_reply(uint32_t option, const char *optname, uint32_t > type, const char *typename, uint32_t length) "Received option reply %" > PRIu32" (%s), type %" PRIu32" (%s), len %" PRIu32 > +nbd_server_error_msg(uint32_t err, const char *type, const char *msg) > "server reported error 0x%" PRIx32 " (%s) with additional message: %s" > nbd_reply_err_unsup(uint32_t option, const char *name) "server doesn't > understand request %" PRIu32 " (%s), attempting fallback" > nbd_opt_go_start(const char *name) "Attempting NBD_OPT_GO for export '%s'" > nbd_opt_go_success(void) "Export is good to go" > -- Best regards, Vladimir