On Tue, Jul 23, 2024 at 04:19:43PM +0100, Richard W.M. Jones wrote:
> Currently nbdkit only sends an error code (like NBD_REP_ERR_*) and
> possibly an errno (NBD_E*) back to the NBD client.  This loses a lot
> of useful information, meaning callers can only find out what really
> went wrong by looking at server-side logs, which of course might not
> be available or easy to access.
> 
> This change sends informational error messages back to the NBD client ...
> in most cases.  There are some caveats, see patch 3/3.

One thing I forgot to add is that libnbd doesn't actually print the
error message.  Instead it is sent to debug output only.

For example running nbdinfo without debug prints the generic error:

$ nbdkit --log=null \
         eval open=' echo EPERM Go Away >&2; exit 1 ' get_size=' echo 100 ' \
         --run 'nbdinfo "$uri"'
nbdinfo: nbd_opt_go: server replied with error to opt_go request: No such file 
or directory for the default export
nbdinfo: suggestion: to list all exports on the server, use --list
protocol: newstyle-fixed without TLS, using structured packets

With debug, the error message appears buried in libnbd debug output:

$ nbdkit --log=null \
         eval open=' echo EPERM Go Away >&2; exit 1 ' get_size=' echo 100 ' \
         --run 'LIBNBD_DEBUG=1 nbdinfo "$uri"'
...
libnbd: debug: nbd1: nbd_opt_info: handshake: server error message: 
/tmp/nbdkitkYqOww/open: Go Away
...

(https://gitlab.com/nbdkit/libnbd/-/blob/9d1a65d0e653e0411622ebb9859c4f969687c2a1/generator/states-newstyle.c#L104)

I will try to solve this one in another patch series.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
_______________________________________________
Libguestfs mailing list -- guestfs@lists.libguestfs.org
To unsubscribe send an email to guestfs-le...@lists.libguestfs.org

Reply via email to