On Tue, Feb 14, 2023 at 11:08:02 -0600, Jonathon Jongsma wrote:
log stderr and stdout from nbdkit into its own log so that
nbdkit-related issues can be debugged more easily.
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
src/qemu/qemu_nbdkit.c | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_nbdkit.c b/src/qemu/qemu_nbdkit.c
index 5abccf1536..f2ff9552a3 100644
--- a/src/qemu/qemu_nbdkit.c
+++ b/src/qemu/qemu_nbdkit.c
[...]
@@ -902,9 +915,16 @@ qemuNbdkitProcessStart(qemuNbdkitProcess *proc,
return 0;
error:
- if (errbuf)
- virReportError(VIR_ERR_OPERATION_FAILED,
- _("nbdkit failed to start and reported: %s"), errbuf);
+ if (qemuLogContextReadFiltered(logContext, &errmsg, 1024) < 0)
+ VIR_WARN("Unable to read from nbdkit log");
+
+ if ((uri = qemuBlockStorageSourceGetURI(proc->source)))
+ uristring = virURIFormat(uri);
+
+ virReportError(VIR_ERR_INTERNAL_ERROR,
VIR_ERR_INTERNAL_ERROR is not appropriate for message which in most
cases involves user missconfig e.g:
error: internal error: Failed to connect to nbdkit for
'http://storage.example.com:10809/ppc64dev': nbdkit: curl[1]: error: problem doing
HEAD request to fetch size of URL [
http://storage.example.com:10809/ppc64dev]:
Couldn't resolve host name: Could not resolve host:
storage.example.com
IMO 'VIR_ERR_OPERATION_FAILED' will be better. It says "operation
failed"
+ _("Failed to connect to nbdkit for
'%s': %s"),
+ NULLSTR(uristring), NULLSTR(errmsg));
+
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>