[pve-devel] [PATCH cluster 2/2] fix #6434: pmxcfs: add context to *_initialize errors

Fabian Grünbichler f.gruenbichler at proxmox.com
Thu Jun 5 16:17:20 CEST 2025


in case initializing fails with CS_ERR_LIBRARY, the connection to corosync
failed - add that context to make the error message a bit less cryptic.

Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
 src/pmxcfs/confdb.c |  9 ++++++++-
 src/pmxcfs/dfsm.c   | 11 ++++++++++-
 src/pmxcfs/quorum.c |  9 ++++++++-
 3 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/pmxcfs/confdb.c b/src/pmxcfs/confdb.c
index e226fed..3479e52 100644
--- a/src/pmxcfs/confdb.c
+++ b/src/pmxcfs/confdb.c
@@ -221,7 +221,14 @@ static int service_cmap_initialize(cfs_service_t *service, gpointer context) {
 
         result = cmap_initialize(&handle);
         if (result != CS_OK) {
-            cfs_critical("cmap_initialize failed: %s", cs_strerror(result));
+            if (result == CS_ERR_LIBRARY) {
+                cfs_critical(
+                    "cmap_initialize failed: %s (failed to connect to corosync)",
+                    cs_strerror(result)
+                );
+            } else {
+                cfs_critical("cmap_initialize failed: %s", cs_strerror(result));
+            }
             private->handle = 0;
             return -1;
         }
diff --git a/src/pmxcfs/dfsm.c b/src/pmxcfs/dfsm.c
index 9228ddc..c6dfb68 100644
--- a/src/pmxcfs/dfsm.c
+++ b/src/pmxcfs/dfsm.c
@@ -1351,7 +1351,16 @@ cs_error_t dfsm_initialize(dfsm_t *dfsm, int *fd) {
 
     if (dfsm->cpg_handle == 0) {
         if ((result = cpg_initialize(&dfsm->cpg_handle, dfsm->cpg_callbacks)) != CS_OK) {
-            cfs_dom_critical(dfsm->log_domain, "cpg_initialize failed: %s", cs_strerror(result));
+            if (result == CS_ERR_LIBRARY) {
+                cfs_dom_critical(
+                    dfsm->log_domain, "cpg_initialize failed: %s (failed to connect to corosync)",
+                    cs_strerror(result)
+                );
+            } else {
+                cfs_dom_critical(
+                    dfsm->log_domain, "cpg_initialize failed: %s", cs_strerror(result)
+                );
+            }
             goto err_no_finalize;
         }
 
diff --git a/src/pmxcfs/quorum.c b/src/pmxcfs/quorum.c
index 07b2a39..e2ec0a3 100644
--- a/src/pmxcfs/quorum.c
+++ b/src/pmxcfs/quorum.c
@@ -107,7 +107,14 @@ static int service_quorum_initialize(cfs_service_t *service, gpointer context) {
 
         result = quorum_initialize(&handle, &quorum_callbacks, &quorum_type);
         if (result != CS_OK) {
-            cfs_critical("quorum_initialize failed: %s", cs_strerror(result));
+            if (result == CS_ERR_LIBRARY) {
+                cfs_critical(
+                    "quorum_initialize failed: %s (failed to connect to corosync)",
+                    cs_strerror(result)
+                );
+            } else {
+                cfs_critical("quorum_initialize failed: %s", cs_strerror(result));
+            }
             goto err_reset_handle;
         }
 
-- 
2.39.5





More information about the pve-devel mailing list