Releases: ClusterLabs/pacemaker
Releases · ClusterLabs/pacemaker
Pacemaker 3.0.1 - Final
Pacemaker-3.0.1 (07 Aug 2025)
- 775 commits with 283 files changed, 11592 insertions(+), 7745 deletions(-)
Features added since Pacemaker-3.0.0
- daemons: Convert all daemons to support large IPC messages.
- daemons: Enable TLS support for Pacemaker Remote nodes.
- daemons: Set up X509 auth in based if enabled.
- libcib: Enable TLS certs for remote CIB operations.
- libcrmcommon: Add flags for multipart messages.
- libcrmcommon: Support large IPC messages and server events.
- liblrmd: Enable TLS support for Pacemaker Remote clients.
- libpacemaker: Reset scheduler object in
pcmk_simulate() - libs: Log if a TLS certificate is close to expiration.
- sysconfig: Add env settings needed for X509 authentication.
- sysconfig: Document using certificates for remote nodes.
- tools: Deprecate
cibadmin --sync-call
Fixes since Pacemaker-3.0.0
- build: Various minor fixes to static analysis checks
- docs: Improve tables and indexing throughout documentation.
- build: Fix default pacemaker-remoted path on Fedora >= 42
- controller: avoid memory leak when updating join phase
- crmadmin: return error if DC is not elected
- libcib: Don't match element based on XPath matching an attribute
- libcib: Don't send
CRM_OP_REGISTERfromcib_remoteclient - libcrmcluster: prevent external callers from triggering assertion when connecting to cluster
- libcrmcluster: restore CPG header size compatibility
- libcrmcommon: Add retries on connect to avoid fatal errors
- libcrmcommon: Elements should never match if IDs differ
- libcrmcommon: provide a description for
pcmk_rc_no_dcreturn code - libcrmcommon: Sort schema transformations on non-glibc systems
- libcrmservice: consider a monitor pending if LoadUnit receives no reply from systemd
- libpacemaker: Prevent CIB growth during
crm_simulate --profile - libpacemaker: set fail-count to INFINITY for fatal failures
- libpe_status: consider parents of an unmanaged resource active on the node
- libpe_status: Make
cluster_status()idempotent - pacemaker-attrd: make a peer learn our node name once it has joined
- pacemaker-attrd: prevent segfault if a peer leaves when its name is unknown yet
- pacemaker-attrd: remember names of peers from attribute update in case unknown
- scheduler: avoid memory leak in bundles
- scheduler: avoid memory leak when freeing node copies
- tools: Avoid crash in
crm_simulate --profile - tools: validate
stonith_admin --timeoutvalue - various: Correctly detect completion of systemd start/stop actions
- xml: Ensure ACL permissions are valid after XSL transformations
- xml: Preserve ACL reference behavior for replaced constraints
Public API changes since Pacemaker-3.0.0
- fencer: Don't automatically pass nodeid as parameter
- libcrmcommon: add
pcmk_common_cleanup() - libcrmcommon: add
pcmk_free_scheduler() - libcrmcommon: add
pcmk_new_scheduler() - libcrmcommon: add
pcmk_reset_scheduler() - libcrmcommon: Deprecate
crm_foreach_xpath_result() - libcrmcommon: Deprecate
crm_ipc_compressed. - libcrmcommon: Deprecate dedupXpathResults()
- libcrmcommon: Deprecate freeXpathObject()
- libcrmcommon: Deprecate getXpathResult()
- libcrmcommon: Deprecate
get_xpath_object() - libcrmcommon: Deprecate
max_sizeparameter tomainloop_add_ipc_client. - libcrmcommon: Deprecate numXpathResults()
- libcrmcommon: Deprecate pcmkXmlStr
- libcrmcommon: Deprecate
xml_accept_changes() - libcrmcommon: Deprecate
xml_calculate_changes() - libcrmcommon: Deprecate
xml_calculate_significant_changes() - libcrmcommon: Deprecate
xml_document_dirty() - libcrmcommon: Deprecate
xml_tracking_changes() - libcrmcommon: Deprecate
xml_track_changes() - libcrmcommon: Deprecate
xpath_search() - libcrmcommon: Ignore the
max_sizeparameter incrm_ipc_new. - libcrmcommon: Introduce the
pcmk_rc_ipc_moreerror code. - libcrmcommon: Map
pcmk_rc_cib_corrupttoCRM_EX_CONFIG. - liblrmd: Ignore provider for stonith-class resource metadata calls
- libpacemaker: Document that
pcmk_fence_installed()ignores timeout - libpe_rules,libpe_status: deprecate crm/pengine/common.h header
- libpe_rules,libpe_status: deprecate struct
pe_match_dataandpe_match_data_t - libpe_rules,libpe_status: deprecate struct
pe_op_eval_dataandpe_op_eval_data_t - libpe_rules,libpe_status: deprecate struct
pe_re_match_dataandpe_re_match_data_t - libpe_rules,libpe_status: deprecate struct
pe_rsc_eval_dataandpe_rsc_eval_data_t - libpe_rules,libpe_status: deprecate struct
pe_rule_eval_dataandpe_rule_eval_data_t - libpe_rules: deprecate crm/pengine/rules.h header
- libpe_rules: deprecate
pe_eval_nvpairs() - libpe_rules: deprecate
pe_unpack_nvpairs() - libpe_status: deprecate
cleanup_calculations() - libpe_status: deprecate
pe_free_working_set() - libpe_status: deprecate
pe_new_working_set() - libpe_status: deprecate
pe_reset_working_set() - libpe_status: deprecate
set_working_set_defaults() - libstonithd: Deprecate enum
op_stateand its values - libstonithd: Deprecate enum
stonith_call_optionsand its values - libstonithd: Deprecate enum
stonith_namespaceand its values - libstonithd: Deprecate enum
stonith_state - libstonithd: Deprecate
stonith_action_str() - libstonithd: Deprecate
stonith_agent_exists() - libstonithd: Deprecate
stonith_api_connect_retry() - libstonithd: Deprecate
stonith_api_delete() - libstonithd: Deprecate
stonith_api_new() - libstonithd: Deprecate
stonith_api_operations_t - libstonithd: Deprecate
stonith_callback_data_t - libstonithd: Deprecate
stonith_dispatch() - libstonithd: Deprecate
stonith_dump_pending_callbacks() - libstonithd: Deprecate
stonith_event_tand structstonith_event_s - libstonithd: Deprecate
stonith_get_namespace() - libstonithd: Deprecate
stonith_history_free() - libstonithd: Deprecate
stonith_history_t - libstonithd: Deprecate
stonith_key_value_add() - libstonithd: Deprecate
stonith_key_value_freeall() - libstonithd: Deprecate
stonith_key_value_t - libstonithd: Deprecate
stonith_namespace2text() - libstonithd: Deprecate
stonith_op_state_str() - libstonithd: Deprecate
stonith_tand structstonith_s - libstonithd: Deprecate
stonith_text2namespace() - libstonithd: Ignore
namespace_sin stonith API metadata method - libstonithd: Ignore
namespace_sin stonith API validate method - Python: add
PACEMAKER_CONFIG_DIRto BuildOptions
Pacemaker 3.0.1 - Release Candidate 2
- 14 commits with 47 files changed, 1848 insertions(+), 1835 deletions(-)
Fixes since Pacemaker-3.0.1-rc1
- build: Various minor fixes to static analysis checks
- docs: Improve tables and indexing throughout documentation.
Pacemaker 2.1.10 - Final
- 102 commits with 86 files changed, 1295 insertions(+), 608 deletions(-)
Fixes since Pacemaker-2.1.9
- build: Fix building without gnutls
- build: Fix default pacemaker-remoted path on Fedora >= 42
- daemons: Fix a bug iterating in get_op_total_timeout.
- daemons: Fix a toctou bug when fetching additional schemas.
- executor: avoid use-after-free upon shutdown
- libcrmcluster: better detect remote nodes in peer cache
- libcrmcluster: use pcmk__cluster_get_xml_id() when possible
- libcrmservice: Fix overrides for systemd resources
- libcrmservice: Don't leak msg if systemd_proxy is NULL.
- libpacemaker: set fail-count to INFINITY for fatal failures
- libpe_status: consider parents of an unmanaged resource active on the node
- pacemaker-attrd: bail earlier if value won't be written
- pacemaker-attrd: make a peer learn our node name once it has joined
- pacemaker-attrd: prevent segfault if a peer leaves when its name is unknown yet
- pacemaker-attrd: remember names of peers from attribute update in case unknown
- pacemaker-attrd: track node XML IDs independent of attribute values
- pacemaker-attrd: use API to get peer XML ID
- pacemaker-remoted: improve exit codes for schema failures
- scheduler: Don't always fence online remote nodes, and require a cluster
option to enable this new fencing behavior - various: clean up library memory at child exit
- various: Correctly detect completion of systemd start/stop actions
Public API changes since Pacemaker-2.1.9
- libcrmcommon: add pcmk_common_cleanup()
Pacemaker 3.0.1 - Release Candidate 1
Features added since Pacemaker-3.0.0
- daemons: Convert all daemons to support large IPC messages.
- daemons: Enable TLS support for Pacemaker Remote nodes.
- daemons: Set up X509 auth in based if enabled.
- libcib: Enable TLS certs for remote CIB operations.
- libcrmcommon: Add flags for multipart messages.
- libcrmcommon: Support large IPC messages and server events.
- liblrmd: Enable TLS support for Pacemaker Remote clients.
- libpacemaker: Reset scheduler object in
pcmk_simulate() - libs: Log if a TLS certificate is close to expiration.
- sysconfig: Add env settings needed for X509 authentication.
- sysconfig: Document using certificates for remote nodes.
- tools: Deprecate
cibadmin --sync-call
Fixes since Pacemaker-3.0.0
- build: Fix default pacemaker-remoted path on Fedora >= 42
- controller: avoid memory leak when updating join phase
- crmadmin: return error if DC is not elected
- libcib: Don't match element based on XPath matching an attribute
- libcib: Don't send
CRM_OP_REGISTERfromcib_remoteclient - libcrmcluster: prevent external callers from triggering assertion when connecting to cluster
- libcrmcluster: restore CPG header size compatibility
- libcrmcommon: Add retries on connect to avoid fatal errors
- libcrmcommon: Elements should never match if IDs differ
- libcrmcommon: provide a description for
pcmk_rc_no_dcreturn code - libcrmcommon: Sort schema transformations on non-glibc systems
- libcrmservice: consider a monitor pending if LoadUnit receives no reply from systemd
- libpacemaker: Prevent CIB growth during
crm_simulate --profile - libpacemaker: set fail-count to INFINITY for fatal failures
- libpe_status: consider parents of an unmanaged resource active on the node
- libpe_status: Make
cluster_status()idempotent - pacemaker-attrd: make a peer learn our node name once it has joined
- pacemaker-attrd: prevent segfault if a peer leaves when its name is unknown yet
- pacemaker-attrd: remember names of peers from attribute update in case unknown
- scheduler: avoid memory leak in bundles
- scheduler: avoid memory leak when freeing node copies
- tools: Avoid crash in
crm_simulate --profile - tools: validate
stonith_admin --timeoutvalue - various: Correctly detect completion of systemd start/stop actions
- xml: Ensure ACL permissions are valid after XSL transformations
- xml: Preserve ACL reference behavior for replaced constraints
Public API changes since Pacemaker-3.0.0
- fencer: Don't automatically pass nodeid as parameter
- libcrmcommon: add
pcmk_common_cleanup() - libcrmcommon: add
pcmk_free_scheduler() - libcrmcommon: add
pcmk_new_scheduler() - libcrmcommon: add
pcmk_reset_scheduler() - libcrmcommon: Deprecate
crm_foreach_xpath_result() - libcrmcommon: Deprecate
crm_ipc_compressed. - libcrmcommon: Deprecate dedupXpathResults()
- libcrmcommon: Deprecate freeXpathObject()
- libcrmcommon: Deprecate getXpathResult()
- libcrmcommon: Deprecate
get_xpath_object() - libcrmcommon: Deprecate
max_sizeparameter tomainloop_add_ipc_client. - libcrmcommon: Deprecate numXpathResults()
- libcrmcommon: Deprecate pcmkXmlStr
- libcrmcommon: Deprecate
xml_accept_changes() - libcrmcommon: Deprecate
xml_calculate_changes() - libcrmcommon: Deprecate
xml_calculate_significant_changes() - libcrmcommon: Deprecate
xml_document_dirty() - libcrmcommon: Deprecate
xml_tracking_changes() - libcrmcommon: Deprecate
xml_track_changes() - libcrmcommon: Deprecate
xpath_search() - libcrmcommon: Ignore the
max_sizeparameter incrm_ipc_new. - libcrmcommon: Introduce the
pcmk_rc_ipc_moreerror code. - libcrmcommon: Map
pcmk_rc_cib_corrupttoCRM_EX_CONFIG. - liblrmd: Ignore provider for stonith-class resource metadata calls
- libpacemaker: Document that
pcmk_fence_installed()ignores timeout - libpe_rules,libpe_status: deprecate crm/pengine/common.h header
- libpe_rules,libpe_status: deprecate struct
pe_match_dataandpe_match_data_t - libpe_rules,libpe_status: deprecate struct
pe_op_eval_dataandpe_op_eval_data_t - libpe_rules,libpe_status: deprecate struct
pe_re_match_dataandpe_re_match_data_t - libpe_rules,libpe_status: deprecate struct
pe_rsc_eval_dataandpe_rsc_eval_data_t - libpe_rules,libpe_status: deprecate struct
pe_rule_eval_dataandpe_rule_eval_data_t - libpe_rules: deprecate crm/pengine/rules.h header
- libpe_rules: deprecate
pe_eval_nvpairs() - libpe_rules: deprecate
pe_unpack_nvpairs() - libpe_status: deprecate
cleanup_calculations() - libpe_status: deprecate
pe_free_working_set() - libpe_status: deprecate
pe_new_working_set() - libpe_status: deprecate
pe_reset_working_set() - libpe_status: deprecate
set_working_set_defaults() - libstonithd: Deprecate enum
op_stateand its values - libstonithd: Deprecate enum
stonith_call_optionsand its values - libstonithd: Deprecate enum
stonith_namespaceand its values - libstonithd: Deprecate enum
stonith_state - libstonithd: Deprecate
stonith_action_str() - libstonithd: Deprecate
stonith_agent_exists() - libstonithd: Deprecate
stonith_api_connect_retry() - libstonithd: Deprecate
stonith_api_delete() - libstonithd: Deprecate
stonith_api_new() - libstonithd: Deprecate
stonith_api_operations_t - libstonithd: Deprecate
stonith_callback_data_t - libstonithd: Deprecate
stonith_dispatch() - libstonithd: Deprecate
stonith_dump_pending_callbacks() - libstonithd: Deprecate
stonith_event_tand structstonith_event_s - libstonithd: Deprecate
stonith_get_namespace() - libstonithd: Deprecate
stonith_history_free() - libstonithd: Deprecate
stonith_history_t - libstonithd: Deprecate
stonith_key_value_add() - libstonithd: Deprecate
stonith_key_value_freeall() - libstonithd: Deprecate
stonith_key_value_t - libstonithd: Deprecate
stonith_namespace2text() - libstonithd: Deprecate
stonith_op_state_str() - libstonithd: Deprecate
stonith_tand structstonith_s - libstonithd: Deprecate
stonith_text2namespace() - libstonithd: Ignore
namespace_sin stonith API metadata method - libstonithd: Ignore
namespace_sin stonith API validate method - Python: add
PACEMAKER_CONFIG_DIRto BuildOptions
Pacemaker 2.1.10 - Release Candidate 1
-
Fixes since Pacemaker-2.1.9
- build: Fix default pacemaker-remoted path on Fedora >= 42
- daemons: Fix a bug iterating in get_op_total_timeout.
- daemons: Fix a toctou bug when fetching additional schemas.
- executor: avoid use-after-free upon shutdown
- libcrmcluster: better detect remote nodes in peer cache
- libcrmcluster: use pcmk__cluster_get_xml_id() when possible
- libcrmservice: Fix overrides for systemd resources
- libcrmservice: Don't leak msg if systemd_proxy is NULL.
- libpacemaker: set fail-count to INFINITY for fatal failures
- libpe_status: consider parents of an unmanaged resource active on the node
- pacemaker-attrd: bail earlier if value won't be written
- pacemaker-attrd: make a peer learn our node name once it has joined
- pacemaker-attrd: prevent segfault if a peer leaves when its name is unknown yet
- pacemaker-attrd: remember names of peers from attribute update in case unknown
- pacemaker-attrd: track node XML IDs independent of attribute values
- pacemaker-attrd: use API to get peer XML ID
- pacemaker-remoted: improve exit codes for schema failures
- scheduler: Don't always fence online remote nodes, and require a cluster
option to enable this new fencing behavior - various: clean up library memory at child exit
- various: Correctly detect completion of systemd start/stop actions
-
Public API changes since Pacemaker-2.1.9
- libcrmcommon: add pcmk_common_cleanup()
Pacemaker 3.0.0 - Final
Features added since Pacemaker-2.1.9
- For more details, especially about build option changes, see
https://projects.clusterlabs.org/w/projects/pacemaker/pacemaker_3.0_changes/ - upgrades: drop support for rolling upgrades from versions less than 2.0.0
- Pacemaker Remote: drop support for Pacemaker 1 cluster nodes connecting
to Pacemaker Remote 3 or later nodes or bundles, and Pacemaker 3 or later
cluster nodes connecting to Pacemaker Remote 1.1.14 or earlier nodes - build: drop creation of deprecated
pacemaker_remotedlink to
pacemaker-remoted - environment: drop support for deprecated
HA_cib_timeout,
HA_shutdown_delay,PCMK_cib_timeout,PCMK_dh_min_bits, and
PCMK_shutdown_delayvariables - environment:
PCMK_panic_actionvalues are case-sensitive - CIB: XML syntax must be correctly formed (no errors will be ignored)
- CIB:
validate-withmust be set, case-sensitive, and notpacemaker-0.6,
pacemaker-0.7,pacemaker-1.1,pacemaker-next,transitional-0.6, or
unknown - CIB: deprecate
concurrent-fencingcluster option, which now defaults to
true - CIB: deprecate
record-pendingoperation option - CIB: drop support for deprecated cluster options
crmd-finalization-timeout,crmd-integration-timeout, and
crmd-transition-delay, andremove-after-stop - CIB: drop support for deprecated
poweroffvalue ofstonith-action
cluster option - CIB: drop support for nodes with
typeset to deprecated valuepingor
an invalid value - CIB: drop support for deprecated
nagiosandupstartresource classes - CIB: drop support for deprecated
masterresources - CIB: drop support for deprecated
mastersbundle option - CIB: drop support for deprecated bundles using
rktcontainers - CIB: drop support for
instance_attributesinrsc_defaults - CIB: drop support for deprecated
restart-typeresource option - CIB: drop support for deprecated
can-fail,can_fail, and
role_after_failureoperation options - CIB: drop support for deprecated
rsc-instance,with-rsc-instance,
first-instance, andthen-instanceconstraint options - CIB: drop support for deprecated
lifetimeelements in constraints - CIB: drop support for multiple top-level rules in location constraints or
name/value blocks - CIB: drop support for
nameattribute whenid-refattribute is present - CIB: drop support for deprecated
moonindate_specelements of rules - CIB:
globally-uniqueclone option defaults to true ifclone-node-max
is greater than 1 - CIB: location constraints with an invalid
score,boolean-op, or
role, colocation constraints with an invalidscore,rsc-role, or
with-rsc-role, and ticket constraints with an invalidrsc-roleare now
ignored (previously, default values would be used) - CIB: ignore node expressions for meta-attributes
- CIB: treat misconfigured rules and rule expressions as not passing
- CIB: treat negative
migration-thresholdas invalid and use default - CIB: invalid fencing level indexes are rejected by schema
- agents: drop
ocf:pacemaker:o2cbresource agent - agents: the
ocf:pacemaker:controldagent will now always manage
dlm_controld(previously, it would try to manage the long-obsolete
gfs_controldif the resource name started withgfs) - agents: do not pass
HA_mcp,HA_quorum_type,PCMK_mcp, or
PCMK_quorum_type, environment variables to agents - alerts: don't send deprecated alert environment variables to agents
- fencer: drop support for non-clustered mode in fencer
- fencing: default
pcmk_host_argumenttononeifportnot advertised - liblrmd,libstonithd: use standard default timeout (20s) for meta-data
actions - Pacemaker Remote and pacemaker-based: support X.509 (SSL/TLS)
certificates for encrypting Pacemaker Remote connections and remote CIB
administration - pacemaker-based: reject remote users if PAM not available
- tools:
crm_shadow --resetnow requires--force - tools: define behavior of
attrd_updater -Qwithout-N - tools: deprecate
cibadmin --localoption - tools: drop
--text-fancycommand-line option from all tools - tools: drop deprecated
cibadmin --hostand--no-bcastoptions - tools: drop deprecated
crm_resource --get-property,--set-property,
and--xml-fileoptions - tools:
cibadmin --md5-sum-versionedno longer prints feature set - tools:
crm_resourcerejects invalid timeouts - tools:
crm_resource --deletedoes not accept clone instances - tools:
crm_resource --deletewithout-t optexits with a usage error - tools:
crm_resource --deletenow succeeds if resource doesn't exist - tools:
crm_resource --optionthrows usage error if appropriate - tools: drop deprecated
crm_monoptions--as-html,
--disable-ncurses,--simple-status, and--web-cgi
Fixes since Pacemaker-2.1.9
- agents:
ocf:pacemaker:pingnow usesgrep -Einstead of the obsolete
egrep - executor: avoid use-after-free during shutdown
- libcrmcommon: rule expressions with the empty string as value now pass
when the corresponding node attribute is the empty string - libstonithd: avoid use-after-free when retrieving metadata of Linux-HA
fence agents - libstonithd: free escaped metadata descriptions correctly
- scheduler: apply promotion priority to cloned group instances
- scheduler: correctly retrieve any existing fail-count for increment
- scheduler: don't apply colocations twice for promotion priority
- scheduler: ignore
nvpairwith invalidid-ref - scheduler: ignore
valueinnvpairwithid-ref - scheduler: use first action meta-attribute if block has duplicates
- scheduler: consider group locations when member is explicit colocation
dependent - tools: don't trigger an assertion if stdout is closed
- tools: CIB clients retry signon if first try fails
- tools: don't double-free XML in
crm_verifyafter schema update - tools: when injecting a fail count with
crm_simulate, use anINFINITY
score when the cluster would - tools: validate
stonith_admin --timeoutvalue
Public API changes since Pacemaker-2.1.9
- Python: add
PACEMAKER_CONFIG_DIRtopacemaker.BuildOptions - libcib: drop
util_compat.hheader - libcib: drop enum values
cib_database,cib_inhibit_bcast,
cib_mixed_update,cib_quorum_override, andcib_zero_copy - libcib: drop
cib_api_operations_tmembersdelete_absolute(),
inputfd(),is_master(),quit(),set_master(),set_op_callback(),
set_slave(),set_slave_all(),signon_raw(),update() - libcib: drop
cib_tmemberop_callback() - libcib: drop functions
cib_get_generation(),cib_metadata(),
cib_pref(),get_object_parent(),get_object_path(),
get_object_root(),query_node_uname(), andset_standby() - libcrmcluster: add
pcmk_cluster_tmemberpriv - libcrmcluster: drop enums (including all their values)
crm_ais_msg_class,crm_ais_msg_types,crm_get_peer_flags,
crm_join_phase,crm_node_flags, andcrm_status_type - libcrmcluster: drop type alias
crm_node_t - libcrmcluster: drop struct
crm_peer_node_s - libcrmcluster: drop
pcmk_cluster_tmemberscpg_handle,
group,nodeid,uname, anduuid - libcrmcluster: drop global variables
crm_have_quorum,crm_peer_cache,
crm_peer_seq,crm_remote_peer_cache - libcrmcluster: drop enum value
crm_join_nack_quiet - libcrmcluster: drop string constants
CRM_NODE_LOST,CRM_NODE_MEMBER - libcrmcluster: drop functions
cluster_connect_cpg(),
cluster_disconnect_cpg(),crm_active_peers(),crm_cluster_disconnect(),
crm_get_peer(),crm_get_peer_full(),crm_is_corosync_peer_active(),
crm_is_peer_active(),crm_join_phase_str(),crm_peer_destroy(),
crm_peer_init(),crm_peer_uname(),crm_peer_uuid(),
crm_remote_peer_cache_refresh(),crm_remote_peer_cache_remove(),
crm_remote_peer_cache_size(),crm_remote_peer_get(),
crm_set_autoreap(),crm_set_status_callback(),crm_terminate_member(),
crm_terminate_member_no_mainloop(),get_local_nodeid(),
get_local_node_name(),get_node_name(),is_corosync_cluster(),
pcmk_cpg_membership(),pcmk_message_common_cs(),reap_crm_member(),
send_cluster_message(),send_cluster_text(),set_uuid(), and
text2msg_type() - libcrmcluster: rename struct
crm_cluster_stopcmk__cluster - libcrmcommon: add enum
pcmk_ipc_servervaluepcmk_ipc_unknown - libcrmcommon: rename structs
pe_action_stopcmk__action,pe_node_s
topcmk__scored_node,pe_node_shared_stopcmk__node_details,
pe_resource_stopcmk__resource, andpe_working_set_sto
pcmk__scheduler - libcrmcommon: add
pcmk_node_tmembersassignandprivate - libcrmcommon: add
pcmk_resource_tmemberprivate - libcrmcommon: change
pcmk_scheduler_tmemberflagstype touint64_t - libcrmcommon: add defined constants
PCMK_OCF_ROOT,
PCMK_SCHEDULER_INPUT_DIR,PCMK_SCHEMA_DIR,PCMK_VALUE_CRASH,
PCMK_VALUE_OFF, andPCMK_VALUE_REBOOT - libcrmcommon: add function
pcmk_common_cleanup() - libcrmcommon: deprecate defined constants
CIB_OPTIONS_FIRST,
CRM_SCHEMA_DIRECTORY,CRM_SYSTEM_STONITHD,CRM_XS,OCF_ROOT_DIR, and
PE_STATE_DIR - libcrmcommon: deprecate functions
calculate_on_disk_digest(),
calculate_operation_digest(),calculate_xml_versioned_digest(),
char2score(),crm_extended_logging(), `crm_ipc_co...
Pacemaker 3.0.0 - Release Candidate 3
- 33 commits with 9 files changed, 77 insertions(+), 12 deletions(-)
Features added since Pacemaker-3.0.0-rc2
- build: Inkscape is no longer a build dependency for Pacemaker documentation
- agents: The
ocf:pacemaker:controldagent will now always managedlm_controld(previously, it would try to manage the long-obsoletegfs_controldif the resource name started withgfs)
Fixes since Pacemaker-3.0.0-rc2
- agents:
ocf:pacemaker:pingnow usesgrep -Einstead of the obsoleteegrep - tools: when injecting a fail count with
crm_simulate, use anINFINITYscore when the cluster would - tools: validate
stonith_admin --timeoutvalue
Public API changes since Pacemaker-3.0.0-rc2
- Python: add
PACEMAKER_CONFIG_DIRtoBuildOptions
Pacemaker 3.0.0 - Release Candidate 2
Pacemaker-3.0.0-rc2 (11 Dec 2024)
- 57 commits with 44 files changed, 1487 insertions(+), 633 deletions(-)
Features added since Pacemaker-3.0.0-rc1
- Pacemaker Remote and CIB manager: support X.509 (SSL/TLS) certificates for encrypting Pacemaker Remote connections and remote CIB administration
Fixes since Pacemaker-3.0.0-rc1
- libcrmcluster: restore ability to do rolling upgrades (regression introduced in 3.0.0-rc1)
- controller: avoid memory leak when updating join phase (regression introduced in 3.0.0-rc1)
- scheduler: avoid memory leaks in bundles and when freeing node copies (regression introduced in 3.0.0-rc1)
- CIB: ensure ACLs remain valid after CIB upgrades, and warn if upgrade might change ACL effect (regression introduced in 3.0.0-rc1)
- CIB: log warnings if CIB upgrade might not preserve behavior exactly
Public API changes since Pacemaker-3.0.0-rc1
- libcrmcommon: add
pcmk_common_cleanup()
Pacemaker 3.0.0 - Release Candidate 1
- 1938 commits with 685 files changed, 26363 insertions(+), 33503 deletions(-)
Known regressions introduced in this release
- Rolling upgrades to or from this version are not possible (fixed in 3.0.0-rc2)
- Upgrades from existing CIBs with ACLs and deprecated CIB syntax may result in invalid configurations (fixed in 3.0.0-rc2)
- Multiple memory leaks in the scheduler and controller (fixed in 3.0.0-rc2)
Features added since Pacemaker-2.1.9
- For more details, especially about build option changes, see https://projects.clusterlabs.org/w/projects/pacemaker/pacemaker_3.0_changes/
- upgrades: drop support for rolling upgrades from versions less than 2.0.0
- Pacemaker Remote: drop support for Pacemaker 1 cluster nodes connecting to Pacemaker Remote 3 or later nodes or bundles, and Pacemaker 3 or later cluster nodes connecting to Pacemaker Remote 1.1.14 or earlier nodes
- build: drop creation of deprecated
pacemaker_remotedlink topacemaker-remoted - environment: drop support for deprecated
HA_cib_timeout,HA_shutdown_delay,PCMK_cib_timeout,PCMK_dh_min_bits, andPCMK_shutdown_delayvariables - environment:
PCMK_panic_actionvalues are case-sensitive - CIB: XML syntax must be correctly formed (no errors will be ignored)
- CIB:
validate-withmust be set, case-sensitive, and notpacemaker-0.6,pacemaker-0.7,pacemaker-1.1,pacemaker-next,transitional-0.6, or unknown - CIB: deprecate
concurrent-fencingcluster option, which now defaults to true - CIB: deprecate
record-pendingoperation option - CIB: drop support for deprecated cluster options
crmd-finalization-timeout,crmd-integration-timeout, andcrmd-transition-delay, andremove-after-stop - CIB: drop support for deprecated
poweroffvalue ofstonith-actioncluster option - CIB: drop support for nodes with
typeset to deprecated valuepingor an invalid value - CIB: drop support for deprecated
nagiosandupstartresource classes - CIB: drop support for deprecated
masterresources - CIB: drop support for deprecated
mastersbundle option - CIB: drop support for deprecated bundles using
rktcontainers - CIB: drop support for
instance_attributesinrsc_defaults - CIB: drop support for deprecated
restart-typeresource option - CIB: drop support for deprecated
can-fail,can_fail, androle_after_failureoperation options - CIB: drop support for deprecated
rsc-instance,with-rsc-instance,first-instance, andthen-instanceconstraint options - CIB: drop support for deprecated
lifetimeelements in constraints - CIB: drop support for multiple top-level rules in location constraints or name/value blocks
- CIB: drop support for
nameattribute whenid-refattribute is present - CIB: drop support for deprecated
moonindate_specelements of rules - CIB:
globally-uniqueclone option defaults to true ifclone-node-maxis greater than 1 - CIB: location constraints with an invalid
score,boolean-op, orrole, colocation constraints with an invalidscore,rsc-role, orwith-rsc-role, and ticket constraints with an invalidrsc-roleare now ignored (previously, default values would be used) - CIB: ignore node expressions for meta-attributes
- CIB: treat misconfigured rules and rule expressions as not passing
- CIB: treat negative
migration-thresholdas invalid and use default - CIB: invalid fencing level indexes are rejected by schema
- agents: drop ocf:pacemaker:o2cb resource agent
- agents: do not pass
HA_mcp,HA_quorum_type,PCMK_mcp, orPCMK_quorum_type, environment variables to agents - alerts: don't send deprecated alert environment variables to agents
- fencer: drop support for non-clustered mode in fencer
- fencing: default
pcmk_host_argumenttononeifportnot advertised - liblrmd,libstonithd: use standard default timeout (20s) for meta-data actions
- pacemaker-based: reject remote users if PAM not available
- tools:
crm_shadow --resetnow requires--force - tools: define behavior of
attrd_updater -Qwithout-N - tools: deprecate
cibadmin --localoption - tools: drop
--text-fancycommand-line option from all tools - tools: drop deprecated
cibadmin --hostand--no-bcastoptions - tools: drop deprecated
crm_resource --get-property,--set-property, and--xml-fileoptions - tools:
cibadmin --md5-sum-versionedno longer prints feature set - tools:
crm_resourcerejects invalid timeouts - tools:
crm_resource --deletedoes not accept clone instances - tools:
crm_resource --deletewithout-t optexits with a usage error - tools:
crm_resource --deletenow succeeds if resource doesn't exist - tools:
crm_resource --optionthrows usage error if appropriate - tools: drop deprecated
crm_monoptions--as-html,--disable-ncurses,--simple-status, and--web-cgi
Fixes since Pacemaker-2.1.9
- executor: avoid use-after-free during shutdown
- libcrmcommon: rule expressions with the empty string as value now pass when the corresponding node attribute is the empty string
- libstonithd: avoid use-after-free when retrieving metadata of Linux-HA fence agents
- libstonithd: free escaped metadata descriptions correctly
- scheduler: apply promotion priority to cloned group instances
- scheduler: correctly retrieve any existing fail-count for increment
- scheduler: don't apply colocations twice for promotion priority
- scheduler: ignore
nvpairwith invalidid-ref - scheduler: ignore
valueinnvpairwithid-ref - scheduler: use first action meta-attribute if block has duplicates
- scheduler: consider group locations when member is explicit colocation dependent
- tools: don't trigger an assertion if stdout is closed
- tools: CIB clients retry signon if first try fails
- tools: don't double-free XML in
crm_verifyafter schema update
Public API changes since Pacemaker-2.1.9
- libcib: drop
util_compat.hheader - libcib: drop enum values
cib_database,cib_inhibit_bcast,
cib_mixed_update,cib_quorum_override, andcib_zero_copy - libcib: drop
cib_api_operations_tmembersdelete_absolute(),
inputfd(),is_master(),quit(),set_master(),set_op_callback(),
set_slave(),set_slave_all(),signon_raw(),update() - libcib: drop
cib_tmemberop_callback() - libcib: drop functions
cib_get_generation(),cib_metadata(),
cib_pref(),get_object_parent(),get_object_path(),
get_object_root(),query_node_uname(), andset_standby() - libcrmcluster: add
pcmk_cluster_tmemberpriv - libcrmcluster: drop enums (including all their values)
crm_ais_msg_class,crm_ais_msg_types,crm_get_peer_flags,
crm_join_phase,crm_node_flags, andcrm_status_type - libcrmcluster: drop type alias
crm_node_t - libcrmcluster: drop struct
crm_peer_node_s - libcrmcluster: drop
pcmk_cluster_tmemberscpg_handle,
group,nodeid,uname, anduuid - libcrmcluster: drop global variables
crm_have_quorum,crm_peer_cache,
crm_peer_seq,crm_remote_peer_cache - libcrmcluster: drop enum value
crm_join_nack_quiet - libcrmcluster: drop string constants
CRM_NODE_LOST,CRM_NODE_MEMBER - libcrmcluster: drop functions
cluster_connect_cpg(),
cluster_disconnect_cpg(),crm_active_peers(),crm_cluster_disconnect(),
crm_get_peer(),crm_get_peer_full(),crm_is_corosync_peer_active(),
crm_is_peer_active(),crm_join_phase_str(),crm_peer_destroy(),
crm_peer_init(),crm_peer_uname(),crm_peer_uuid(),
crm_remote_peer_cache_refresh(),crm_remote_peer_cache_remove(),
crm_remote_peer_cache_size(),crm_remote_peer_get(),
crm_set_autoreap(),crm_set_status_callback(),crm_terminate_member(),
crm_terminate_member_no_mainloop(),get_local_nodeid(),
get_local_node_name(),get_node_name(),is_corosync_cluster(),
pcmk_cpg_membership(),pcmk_message_common_cs(),reap_crm_member(),
send_cluster_message(),send_cluster_text(),set_uuid(), and
text2msg_type() - libcrmcluster: rename struct
crm_cluster_stopcmk__cluster - libcrmcommon: add enum
pcmk_ipc_servervaluepcmk_ipc_unknown - libcrmcommon: rename structs
pe_action_stopcmk__action,pe_node_s
topcmk__scored_node,pe_node_shared_stopcmk__node_details,
pe_resource_stopcmk__resource, andpe_working_set_sto
pcmk__scheduler - libcrmcommon: add
pcmk_node_tmembersassignandprivate - libcrmcommon: add
pcmk_resource_tmemberprivate - libcrmcommon: change
pcmk_scheduler_tmemberflagstype touint64_t - libcrmcommon: add defined constants
PCMK_OCF_ROOT,
PCMK_SCHEDULER_INPUT_DIR,PCMK_SCHEMA_DIR,PCMK_VALUE_CRASH,
PCMK_VALUE_OFF, andPCMK_VALUE_REBOOT - libcrmcommon: deprecate defined constants
CIB_OPTIONS_FIRST,
CRM_SCHEMA_DIRECTORY,CRM_SYSTEM_STONITHD,CRM_XS,OCF_ROOT_DIR, and
PE_STATE_DIR - libcrmcommon: deprecate functions
calculate_on_disk_digest(),
calculate_operation_digest(),calculate_xml_versioned_digest(),
char2score(),crm_extended_logging(),crm_ipc_connect(),
crm_is_daemon_name(),crm_xml_cleanup(),crm_xml_init(),
crm_xml_sanitize_id(),crm_xml_set_id(),expand_idref(),free_xml(),
hash2nvpair(),pcmk_free_xml_subtree(),pcmk_nvpairs2xml_attrs(),
pcmk_sort_nvpairs(),pcmk_xml_attrs2nvpairs(), andsorted_xml() - libcrmcommon: drop headers
agents_compat.h,compatibility.h,
logging_compat.h, `mainloop_compat...
Pacemaker 2.1.9 - Final
- 169 commits with 252 files changed, 4498 insertions(+), 2259 deletions(-)
Known regressions introduced in this release
- None
Features added since Pacemaker-2.1.8
- build: support building with libxml2 2.13.0 or newer
- CIB: new no-quorum-policy value "fence" replaces now-deprecated "suicide"
- tools: iso8601 supports standard --output-as/--output-to arguments
Fixes since Pacemaker-2.1.8
- tools: restore crmadmin default timeout to 30 seconds instead of none (regression introduced in 2.1.5)
- tools: crm_resource did not return error if schema upgrade failed (regression introduced in 2.1.8)
- CIB: detect newly created alerts section (regression introduced in 2.1.7)
- CIB: treat empty environment variables (CIB_file etc.) same as unset
- CIB: remote CIB administration now cannot block server
- executor: don't block during TLS handshakes
- executor: discard any agent output after about 10MiB
- scheduler: avoid memory leak when checking for unfencing-capable devices
- libcrmcommon: check for overflow when parsing and manipulating date/times
- tools: properly handle resources removed from configuration when displaying node history in crm_mon
- tools: crmadmin -D/--dc_lookup no longer hangs when there is no DC
- tools: don't assert if stdout or stderr is closed by caller
Public API changes since Pacemaker-2.1.8
- libcrmcommon: add enum pcmk_ra_caps value pcmk_ra_cap_cli_exec
- libcrmcommon: add pcmk_cib_node_shutdown()
- libcrmcommon: add pcmk_parse_score()
- libcrmcommon: deprecate CRM_ASSERT()
- libcrmcommon: deprecate PCMK_VALUE_FENCE_LEGACY defined constant
- libstonithd: add enum stonith_call_options value st_opt_allow_self_fencing
- libstonithd: deprecate enum stonith_call_options value st_opt_allow_suicide
- libstonithd: deprecate enum stonith_call_options value st_opt_scope_local
- libstonithd: deprecate enum stonith_call_options value st_opt_verbose