[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