Skip to content

Commit

Permalink
Fix: libcrmcluster: prevent external callers from triggering assertio…
Browse files Browse the repository at this point in the history
…n when connecting to cluster

When sbd is connecting to cluster by calling crm_cluster_connect() ->
pcmk_cluster_connect() -> pcmk__corosync_connect() ->
pcmk__cpg_connect() -> pcmk__server_message_type()

, it triggers assertion:

error: log_assertion_as: pcmk__server_message_type: Triggered fatal
assertion at servers.c:165 : (server > 0) && (server <
PCMK__NELEM(server_info))

This fixes it by avoiding calling pcmk__server_message_type() in
pcmk__cpg_connect().
  • Loading branch information
gao-yan committed Feb 8, 2025
1 parent 88e9ec1 commit e128ae1
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/cluster/cpg.c
Original file line number Diff line number Diff line change
Expand Up @@ -805,7 +805,10 @@ pcmk__cpg_connect(pcmk_cluster_t *cluster)

cpg_evicted = false;

cpg_group_name = pcmk__server_message_type(cluster->priv->server);
if (cluster->priv->server != pcmk_ipc_unknown) {
cpg_group_name = pcmk__server_message_type(cluster->priv->server);
}

if (cpg_group_name == NULL) {
/* The name will already be non-NULL for Pacemaker servers. If a
* command-line tool or external caller connects to the cluster,
Expand Down

0 comments on commit e128ae1

Please sign in to comment.