If the thumbprint parameter is wrong, it's only reported in VixDiskLib_Open(), and then with the non-descript VIX_E_FAIL error code. If the user typed or cut-and-pasted the thumbprint incorrectly, said "Unkown error" message is not helpful for fixing the nbkit command line. Hint at the thumbprint as the potential culprit.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1905772 Signed-off-by: Laszlo Ersek <[email protected]> --- plugins/vddk/vddk-structs.h | 1 + plugins/vddk/vddk.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/plugins/vddk/vddk-structs.h b/plugins/vddk/vddk-structs.h index 799c4aecc5b8..4c7c6fe2e4fc 100644 --- a/plugins/vddk/vddk-structs.h +++ b/plugins/vddk/vddk-structs.h @@ -43,6 +43,7 @@ typedef uint64_t VixError; #define VIX_OK 0 +#define VIX_E_FAIL 1 #define VIX_E_NOT_SUPPORTED 6 #define VIX_ASYNC 25000 diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c index 2ea071d641e6..dbd3fdbe09af 100644 --- a/plugins/vddk/vddk.c +++ b/plugins/vddk/vddk.c @@ -769,6 +769,26 @@ vddk_open (int readonly) VDDK_CALL_END (VixDiskLib_Open, 0); if (err != VIX_OK) { VDDK_ERROR (err, "VixDiskLib_Open: %s", filename); + + /* Attempt to advise the user on the extremely helpful "Unknown error" + * result of VixDiskLib_Open(). The one reason we've seen for this error + * mode is a thumbprint mismatch (RHBZ#1905772). Note that: + * + * (1) The thumbprint (as a part of "h->params") is passed to + * VixDiskLib_ConnectEx() above, but the fingerprint mismatch is + * detected only inside VixDiskLib_Open(). + * + * (2) "thumb_print" may be NULL -- vddk_config_complete() is correct not to + * require a non-NULL "thumb_print" for a remote connection; the sample + * program "vixDiskLibSample.cpp" in vddk-7.0.3 explicitly permits + * "-thumb" to be absent. + */ + if (is_remote && err == VIX_E_FAIL) + nbdkit_error ("Please verify whether the \"thumbprint\" parameter (%s) " + "matches the SHA1 fingerprint of the remote VMware " + "server. Refer to nbdkit-vddk-plugin(1) section " + "\"THUMBPRINTS\" for details.", + thumb_print == NULL ? "not specified" : thumb_print); goto err2; } base-commit: 5007409b03486fa4b43526412d3db8de50325efd -- 2.19.1.3.g30247aa5d201 _______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
