[libvirt] [PATCH 10/20] qemu_capabilities: Log probe failure in virQEMUCapsInitQMPSingle

Jiri Denemark jdenemar at redhat.com
Tue Feb 19 09:04:53 UTC 2019


Let's push the call to virQEMUCapsLogProbeFailure down the stack to
where the probing failure is detected.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---

Notes:
    Version 7:
    - this patch was originally included in
        [PATCH 09/33] qemu_process: Expose process exit status code
      in version 6 with a bunch of other unrelated changes
    - modified after virQEMUCapsInitQMP was refactored

 src/qemu/qemu_capabilities.c | 47 ++++++++++++++++++------------------
 1 file changed, 24 insertions(+), 23 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index bb1920146e..264dcae983 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -4351,6 +4351,26 @@ virQEMUCapsInitQMPMonitorTCG(virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED,
 }
 
 
+#define MESSAGE_ID_CAPS_PROBE_FAILURE "8ae2f3fb-2dbe-498e-8fbd-012d40afa361"
+
+static void
+virQEMUCapsLogProbeFailure(const char *binary)
+{
+    virLogMetadata meta[] = {
+        { .key = "MESSAGE_ID", .s = MESSAGE_ID_CAPS_PROBE_FAILURE, .iv = 0 },
+        { .key = "LIBVIRT_QEMU_BINARY", .s = binary, .iv = 0 },
+        { .key = NULL },
+    };
+
+    virLogMessage(&virLogSelf,
+                  VIR_LOG_WARN,
+                  __FILE__, __LINE__, __func__,
+                  meta,
+                  _("Failed to probe capabilities for %s: %s"),
+                  binary, virGetLastErrorMessage());
+}
+
+
 static int
 virQEMUCapsInitQMPSingle(virQEMUCapsPtr qemuCaps,
                          const char *libDir,
@@ -4375,6 +4395,9 @@ virQEMUCapsInitQMPSingle(virQEMUCapsPtr qemuCaps,
         ret = virQEMUCapsInitQMPMonitor(qemuCaps, proc->mon);
 
  cleanup:
+    if (ret < 0)
+        virQEMUCapsLogProbeFailure(qemuCaps->binary);
+
     qemuProcessQMPStop(proc);
     qemuProcessQMPFree(proc);
     return ret;
@@ -4404,26 +4427,6 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
 }
 
 
-#define MESSAGE_ID_CAPS_PROBE_FAILURE "8ae2f3fb-2dbe-498e-8fbd-012d40afa361"
-
-static void
-virQEMUCapsLogProbeFailure(const char *binary)
-{
-    virLogMetadata meta[] = {
-        { .key = "MESSAGE_ID", .s = MESSAGE_ID_CAPS_PROBE_FAILURE, .iv = 0 },
-        { .key = "LIBVIRT_QEMU_BINARY", .s = binary, .iv = 0 },
-        { .key = NULL },
-    };
-
-    virLogMessage(&virLogSelf,
-                  VIR_LOG_WARN,
-                  __FILE__, __LINE__, __func__,
-                  meta,
-                  _("Failed to probe capabilities for %s: %s"),
-                  binary, virGetLastErrorMessage());
-}
-
-
 virQEMUCapsPtr
 virQEMUCapsNewForBinaryInternal(virArch hostArch,
                                 const char *binary,
@@ -4462,10 +4465,8 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch,
         goto error;
     }
 
-    if (virQEMUCapsInitQMP(qemuCaps, libDir, runUid, runGid, &qmperr) < 0) {
-        virQEMUCapsLogProbeFailure(binary);
+    if (virQEMUCapsInitQMP(qemuCaps, libDir, runUid, runGid, &qmperr) < 0)
         goto error;
-    }
 
     qemuCaps->libvirtCtime = virGetSelfLastChanged();
     qemuCaps->libvirtVersion = LIBVIR_VERSION_NUMBER;
-- 
2.20.1




More information about the libvir-list mailing list