On 9/18/20 9:42 AM, Eric Blake wrote:
When using nbdsh for scripting, it is convenient to let nbdsh fail
with status 1 when encountering an API failure. However, doing so by
letting the nbd.Error exception leak all the way causes ABRT (on
Fedora 32 at least) to assume the program crashed from a programming
error, and needlessly complicates clients to have to add try: blocks.
Better is if nbdsh itself prints the same stack trace that python
would, but handles the error and exits python cleanly so that ABRT
does not think that the exception was unhandled.
See
https://github.com/libguestfs/nbdkit/commit/e13048fd9 for an
example of client cleanup made more verbose if we don't patch libnbd.
I missed one: 'nbdsh -u garbage_uri' lets nbd.Error escape from a failed
nbd_connect_uri. We may want to treat that one differently than we do
the concatenated -c arguments, but it's another one worth treating, once
we figure out if this is the right thing to do from the ABRT perspective.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org