Releases: ClusterLabs/pacemaker
Releases · ClusterLabs/pacemaker
Pacemaker 3.0.2 - Release Candidate 2
Pacemaker-3.0.2 (11 May 2026)
- 45 commits with 49 files changed, 949 insertions(+), 867 deletions(-)
Fixes since Pacemaker-3.0.2-rc1
- libcib: Full-CIB replace op no longer segfaults with
cib_xpath - libcib: Handle
cib_xpath_addressfor an XPath query for an attribute - libcib: Prevent crashing when handling an XPath query for an attribute
(regression introduced in 3.0.1) - libcrmcommon: Avoid leak in
pcmk__xe_dereference_children()test - libpe_status: Avoid leaking a
pcmk_resource_t'sxml/orig_xml
Public API changes since Pacemaker-3.0.2-rc1
- libcrmcommon: Deprecate
PCMK_dh_max_bits. - libcrmcommon: Deprecate
pcmk_unpack_nvpair_blocks() - libpe_status:
get_meta_attributes()rsc argument is now const
Pacemaker 3.0.2 - Release Candidate 1
Pacemaker-3.0.2 (23 Apr 2026)
- 1806 commits with 607 files changed, 38242 insertions(+), 30786 deletions(-)
Features added since Pacemaker-3.0.1
- agents: New
allow_fencing_disabledparam for controld RA - daemons,libcib: Add support for PSK authentication for remote CIB ops.
- fencer: Improve validation of
pcmk_host_map - libcib, tools: Empty CIB contains
admin_epochbefore epoch - libcib:
{add,del}_notify_callbacksupport onlycib_diff_notify - libcrmcommon: Be more lenient in evicting IPC clients.
- libcrmcommon: Deprecate anonymous authentication.
- libcrmcommon: Require version info when applying CIB patches
- libcrmcommon:
xml_apply_patchsetdoesn't returndiff_resyncerr - schemas: New
fencing-enabledattribute incrm_monschema - schemas: New
fencing-timeout-msattribute incrm_monschema - tools: Change exit codes for failure to create
cib_tobject - tools:
cibadminignores--node-pathfor non-XPath-query command - tools:
cibadminnow errors if unable to compute md5 sum - tools: Default
cibadmincommand is now--query - tools: Deprecate
cibadmin --show-accessas non-privileged user - tools: Deprecate current input source precedence in
cibadmin - tools: Deprecate
iso8601command line tool - tools: Don't require
--forcefor non-privilegedcibadminACLs - tools: Drop "Digest: " from
cibadmin --md5-sumstderr - tools: Drop cluster-clean script
- tools: Drop cluster-helper script
- tools: Use formatted output in
cibadmin - tools: Use formatted output in
crm_diff - various: New
fencing-enabledincrm_mon/pcmk_statusoutput - various: New
fencing-timeout-msincrm_mon/pcmk_statusoutput
Deprecated/removed command line options since Pacemaker-3.0.1
- tools: Deprecate
cibadmin -e/--node-pathoption - tools: Deprecate
cibadmin -N/--nodeoption - tools: Drop
cibadmin --extended-version/-!option - tools: Drop
crm_attribute --attr-idoption - tools: Drop
crm_attribute --attr-value/--delete-attroptions - tools: Drop
crm_attribute --inhibit-policy-engine/-ioption - tools: Deprecate
crm_diff --stdin - tools: Deprecate
crm_mon --pid-file/-poption - tools: Drop
crm_report -T/--ctsand--cts-logoptions
Cluster property changes since Pacemaker-3.0.1
- libcrmcommon: Deprecate
cancel-removed-actions - libcrmcommon: Deprecate
cluster-ipc-limit cluster - libcrmcommon: Deprecate
enable-startup-probes - libcrmcommon: Deprecate
remote-clear-port - libcrmcommon: Deprecate
stop-removed-resources - libcrmcommon: Rename
stop-removed-actionstocancel-removed-actions - libcrmcommon: New
fencing-actioncluster property - libcrmcommon: New
fencing-enabledcluster property - libcrmcommon: New
fencing-max-attemptscluster property - libcrmcommon: New
fencing-reactioncluster property - libcrmcommon: New
fencing-timeoutcluster property - libcrmcommon: New
fencing-watchdog-timeoutcluster property - libcrmcommon: New
stop-removed-actionscluster property - libcrmcommon: New
stop-removed-resourcescluster property
Fixes since Pacemaker-3.0.1
- libcrmcommon:
xml_acl_filtered_copy()returns false for NULL source
(regression introduced in 3.0.1) - libcib: Fix setting origin attributes in CIB updates
(regression introduced in 2.1.6) - agents: Error check calling
attrd_updaterin HealthCPU. - agents: Error check calling
attrd_updaterin HealthIOWait. - agents: Error check calling
attrd_updaterin HealthSMART. - agents: Error out if CPU I/O wait time isn't available.
- agents: Error out if CPU idleness isn't available.
- agents: Use case-insensitive property matching in controld RA
- based: Return correct code from
write_cib_async() - build, libcrmservice: initdir must be a single directory
- build: Add a configure test for how strftime handles bare percents.
- build: Add a configure test for if strftime supports field width.
- build: Add CMocka required includes
- build: Handle CMocka deprecations
- controller, fencer: Ignore negative/unparsable
pcmk_monitor_timeout - controller: Ask attribute manager to purge fenced nodes' attributes
- controller: Avoid crash due to GSource double-free
- controller: don't need to erase node attributes for remote nodes
- controller: Don't purge transient attributes on node loss
- controller: NULL-check
lrm_statebefore dereferencing it - cts-cli: Avoid AttributeError when printing signal
- cts-cli: Fix line removal in
access_rendertest - cts: Consolidate tests in cts-lab result output
- cts: Don't try to
shlex.split(None)for fencing params. - cts: Fix a bug checking the return type of
RemoteExec.__call__. - cts: Fix Corosync CFG pattern
- cts: Fix the BadNews message that the ResyncCIB test ignores.
- cts: Fix the BadNews messages that the SplitBrain test ignores.
- cts: If corosync was started with systemd, stop it with systemd.
- cts: Leave valgrind results around if they're not empty.
- cts: Make
cts-lab --seedwork again - cts: Make cts-lab valgrind-aware
- cts: Remove the dummy resource at the end of the Cibsecret test.
- cts: Start corosync using systemd if available
- cts: Test whether the Cibsecret test is applicable.
- cts: Use correct path for cts-support in source directory
- cts: Use correct permissions when installing the dummy service file.
- daemons,libcib: Fix memory leaks in IPC code.
- daemons: Add a return to
do_pe_invoke_callback. - daemons: Add
SUPPORT_COROSYNCguards to attrd. - daemons: Call
pcmk_cluster_disconnectat the end of fenced. - daemons: Clean up XML memory in IPC dispatch functions.
- daemons: Correct result error string on unknown IPC messages.
- daemons: Delay creating an xmlNode in
handle_register_request. - daemons: Don't add repeated
I_PE_CALCmessages to the fsa queue. - daemons: Don't log the unresponsive message for a daemon we killed
- daemons: Don't NACK an invalid remote message.
- daemons: Don't return a NACK if execd gets an unknown message.
- daemons: Fix a segfault displaying fencer metadata.
- daemons: Fix a typo if no existing attrd is found.
- daemons: Fix typos in IPC doxygen blocks.
- daemons: Fix user/group checking in based.
- daemons: Get rid of some logged warnings in execd.
- daemons: Only log a message if we're falling back.
- daemons: Return
CRM_EX_PROTOCOLwhen ACKing an unknown request. - daemons: Set
ipc_flagsinlrmd_remote_client_msgto 0. - daemons: Use
crm_ipc_client_responseinlrmd_remote_client_msg. - daemons: When checking for duplicate messages, we might be prepending.
- executor: Fix the typos in the logs.
- fencer: Disable watchdog-based self-fencing if
fencing-watchdog-timeoutis unset - fencer: Drop support for escaped characters in
pcmk_host_map - fencer: Fix fence delay range off-by-one
- fencer: Fix ISO 8601 interval parsing in
pcmk_delay_base - fencer: Make the deprecated
stonith-watchdog-timeoutoption work again - fencer: Prevent unsigned int overflow in
get_action_timeout() - libcib, tools: Resolve cibadmin TODO re: ACL rendering and input
- libcib: Avoid memory leak when processing CIB upgrade
- libcib: Don't convert
-pcmk_err_diff_resynctopcmk_ok - libcib: Explicitly handle receiving a NACK from based.
- libcib: Explicitly handle receiving a NACK from fenced.
- libcib: Fix
cib__signon_retry()return code - libcrmcommon, libpacemaker: Don't assign const char * to char *
- libcrmcommon: Allow empty string values in
pcmk__scan_nvpair() - libcrmcommon: Avoid integer overflow in
seconds_to_hms() - libcrmcommon: Avoid overflow in
crm_time_add_months() - libcrmcommon: Avoid overflow when negating
INT_MIN - libcrmcommon: Create a log file if it doesn't exist.
- libcrmcommon: Don't delete unchanged attributes when applying patch
- libcrmcommon: Don't log on error in
pcmk__ipc_send_iov. - libcrmcommon: Don't require version info when applying CIB patches
- libcrmcommon: Ensure stonith watchdog timeout is in long range
- libcrmcommon: Fix a glib logging build error.
- libcrmcommon: Fix a segfault in
internal_ipc_get_reply. - libcrmcommon: Fix integer overflow of alert timeouts
- libcrmcommon: Fix underflow in
crm_time_add_days() - libcrmcommon: Handle NULL
PCMK_XA_FORMATandPCMK_XA_DIGEST - libcrmcommon: Ignore empty time spec
- libcrmcommon: Improve validation of
PCMK_logfile_mode - libcrmcommon: Increase poll() timeout to 5s for liveness checks on sub-daemons
- libcrmcommon: Keep trailing newlines in
pcmk__scan_nvpair() - libcrmcommon: Loop on EAGAIN in
mainloop_gio_callback. - libcrmcommon: Make
parse_acl_entry()non-recursive - libcrmcommon: Match correctly in
PCMK_debug, stderr, blackbox - libcrmcommon: Parse iso8601 strings according to spec.
- libcrmcommon:
pcmk__quote_cmdline()returns valid shell string - libcrmcommon: Properly return errno from
pcmk__bare_output_new. - libcrmcommon: Return a value for md5sum of empty input.
- libcrmcommon: Show deprecated option aliases in outputs
- libcrmcommon: Standardize remote environment variable parsing
- libcrmservice: Correctly check the return value of stat.
- libcrmservice: Fix memory leaks when listing directory contents
- libcrmservice: List only the request...
Pacemaker 3.0.1 - Final
Pacemaker-3.0.1 (07 Aug 2025)
- 775 commits with 283 files changed, 11592 insertions(+), 7745 deletions(-)
Known regressions introduced in this release
xml_acl_filtered_copy()returns false for NULL source (fixed in 3.0.2-rc1)- Prevent crashing when handling an XPath query for an attribute (fixed in 3.0.2-rc2)
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()