Skip to content

Releases: ClusterLabs/pacemaker

Pacemaker 3.0.2 - Release Candidate 2

11 May 21:22
6629f2e

Choose a tag to compare

Pre-release

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_address for 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's xml/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

24 Apr 13:56
8b5ef3b

Choose a tag to compare

Pre-release

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_disabled param 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_epoch before epoch
  • libcib: {add,del}_notify_callback support only cib_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_patchset doesn't return diff_resync err
  • schemas: New fencing-enabled attribute in crm_mon schema
  • schemas: New fencing-timeout-ms attribute in crm_mon schema
  • tools: Change exit codes for failure to create cib_t object
  • tools: cibadmin ignores --node-path for non-XPath-query command
  • tools: cibadmin now errors if unable to compute md5 sum
  • tools: Default cibadmin command is now --query
  • tools: Deprecate cibadmin --show-access as non-privileged user
  • tools: Deprecate current input source precedence in cibadmin
  • tools: Deprecate iso8601 command line tool
  • tools: Don't require --force for non-privileged cibadmin ACLs
  • tools: Drop "Digest: " from cibadmin --md5-sum stderr
  • 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-enabled in crm_mon/pcmk_status output
  • various: New fencing-timeout-ms in crm_mon/pcmk_status output

Deprecated/removed command line options since Pacemaker-3.0.1

  • tools: Deprecate cibadmin -e/--node-path option
  • tools: Deprecate cibadmin -N/--node option
  • tools: Drop cibadmin --extended-version/-! option
  • tools: Drop crm_attribute --attr-id option
  • tools: Drop crm_attribute --attr-value/--delete-attr options
  • tools: Drop crm_attribute --inhibit-policy-engine/-i option
  • tools: Deprecate crm_diff --stdin
  • tools: Deprecate crm_mon --pid-file/-p option
  • tools: Drop crm_report -T/--cts and --cts-log options

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-actions to cancel-removed-actions
  • libcrmcommon: New fencing-action cluster property
  • libcrmcommon: New fencing-enabled cluster property
  • libcrmcommon: New fencing-max-attempts cluster property
  • libcrmcommon: New fencing-reaction cluster property
  • libcrmcommon: New fencing-timeout cluster property
  • libcrmcommon: New fencing-watchdog-timeout cluster property
  • libcrmcommon: New stop-removed-actions cluster property
  • libcrmcommon: New stop-removed-resources cluster 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_updater in HealthCPU.
  • agents: Error check calling attrd_updater in HealthIOWait.
  • agents: Error check calling attrd_updater in 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_state before dereferencing it
  • cts-cli: Avoid AttributeError when printing signal
  • cts-cli: Fix line removal in access_render test
  • 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 --seed work 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_COROSYNC guards to attrd.
  • daemons: Call pcmk_cluster_disconnect at 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_CALC messages 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_PROTOCOL when ACKing an unknown request.
  • daemons: Set ipc_flags in lrmd_remote_client_msg to 0.
  • daemons: Use crm_ipc_client_response in lrmd_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-timeout is 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-timeout option 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_resync to pcmk_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_FORMAT and PCMK_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...
Read more

Pacemaker 3.0.1 - Final

07 Aug 15:18
16e74fc

Choose a tag to compare

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_REGISTER from cib_remote client
  • 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_dc return 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 --timeout value
  • 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_size parameter to mainloop_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_size parameter in crm_ipc_new.
  • libcrmcommon: Introduce the pcmk_rc_ipc_more error code.
  • libcrmcommon: Map pcmk_rc_cib_corrupt to CRM_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_data and pe_match_data_t
  • libpe_rules,libpe_status: deprecate struct pe_op_eval_data and pe_op_eval_data_t
  • libpe_rules,libpe_status: deprecate struct pe_re_match_data and pe_re_match_data_t
  • libpe_rules,libpe_status: deprecate struct pe_rsc_eval_data and pe_rsc_eval_data_t
  • libpe_rules,libpe_status: deprecate struct pe_rule_eval_data and pe_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_state and its values
  • libstonithd: Deprecate enum stonith_call_options and its values
  • libstonithd: Deprecate enum stonith_namespace and 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_t and struct stonith_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_t and struct stonith_s
  • libstonithd: Deprecate stonith_text2namespace()
  • libstonithd: Ignore namespace_s in stonith API metadata method
  • libstonithd: Ignore namespace_s in stonith API validate method
  • Python: add PACEMAKER_CONFIG_DIR to BuildOptions

Pacemaker 3.0.1 - Release Candidate 2

22 Jul 13:28
1244f61

Choose a tag to compare

Pre-release
  • 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

21 Jul 13:33
fdf796e

Choose a tag to compare

  • 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

20 Jun 22:01
9a5e54b

Choose a tag to compare

Pre-release

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_REGISTER from cib_remote client
  • 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_dc return 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 --timeout value
  • 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_size parameter to mainloop_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_size parameter in crm_ipc_new.
  • libcrmcommon: Introduce the pcmk_rc_ipc_more error code.
  • libcrmcommon: Map pcmk_rc_cib_corrupt to CRM_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_data and pe_match_data_t
  • libpe_rules,libpe_status: deprecate struct pe_op_eval_data and pe_op_eval_data_t
  • libpe_rules,libpe_status: deprecate struct pe_re_match_data and pe_re_match_data_t
  • libpe_rules,libpe_status: deprecate struct pe_rsc_eval_data and pe_rsc_eval_data_t
  • libpe_rules,libpe_status: deprecate struct pe_rule_eval_data and pe_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_state and its values
  • libstonithd: Deprecate enum stonith_call_options and its values
  • libstonithd: Deprecate enum stonith_namespace and 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_t and struct stonith_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_t and struct stonith_s
  • libstonithd: Deprecate stonith_text2namespace()
  • libstonithd: Ignore namespace_s in stonith API metadata method
  • libstonithd: Ignore namespace_s in stonith API validate method
  • Python: add PACEMAKER_CONFIG_DIR to BuildOptions

Pacemaker 2.1.10 - Release Candidate 1

20 Jun 18:54
5693eae

Choose a tag to compare

Pre-release
  • 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

08 Jan 22:47

Choose a tag to compare

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_remoted link to
    pacemaker-remoted
  • environment: drop support for deprecated HA_cib_timeout,
    HA_shutdown_delay, PCMK_cib_timeout, PCMK_dh_min_bits, and
    PCMK_shutdown_delay variables
  • environment: PCMK_panic_action values are case-sensitive
  • CIB: XML syntax must be correctly formed (no errors will be ignored)
  • CIB: validate-with must be set, case-sensitive, and not pacemaker-0.6,
    pacemaker-0.7, pacemaker-1.1, pacemaker-next, transitional-0.6, or
    unknown
  • CIB: deprecate concurrent-fencing cluster option, which now defaults to
    true
  • CIB: deprecate record-pending operation option
  • CIB: drop support for deprecated cluster options
    crmd-finalization-timeout, crmd-integration-timeout, and
    crmd-transition-delay, and remove-after-stop
  • CIB: drop support for deprecated poweroff value of stonith-action
    cluster option
  • CIB: drop support for nodes with type set to deprecated value ping or
    an invalid value
  • CIB: drop support for deprecated nagios and upstart resource classes
  • CIB: drop support for deprecated master resources
  • CIB: drop support for deprecated masters bundle option
  • CIB: drop support for deprecated bundles using rkt containers
  • CIB: drop support for instance_attributes in rsc_defaults
  • CIB: drop support for deprecated restart-type resource option
  • CIB: drop support for deprecated can-fail, can_fail, and
    role_after_failure operation options
  • CIB: drop support for deprecated rsc-instance, with-rsc-instance,
    first-instance, and then-instance constraint options
  • CIB: drop support for deprecated lifetime elements in constraints
  • CIB: drop support for multiple top-level rules in location constraints or
    name/value blocks
  • CIB: drop support for name attribute when id-ref attribute is present
  • CIB: drop support for deprecated moon in date_spec elements of rules
  • CIB: globally-unique clone option defaults to true if clone-node-max
    is greater than 1
  • CIB: location constraints with an invalid score, boolean-op, or
    role, colocation constraints with an invalid score, rsc-role, or
    with-rsc-role, and ticket constraints with an invalid rsc-role are 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-threshold as invalid and use default
  • CIB: invalid fencing level indexes are rejected by schema
  • agents: drop ocf:pacemaker:o2cb resource agent
  • agents: the ocf:pacemaker:controld agent will now always manage
    dlm_controld (previously, it would try to manage the long-obsolete
    gfs_controld if the resource name started with gfs)
  • 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_argument to none if port not 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 --reset now requires --force
  • tools: define behavior of attrd_updater -Q without -N
  • tools: deprecate cibadmin --local option
  • tools: drop --text-fancy command-line option from all tools
  • tools: drop deprecated cibadmin --host and --no-bcast options
  • tools: drop deprecated crm_resource --get-property, --set-property,
    and --xml-file options
  • tools: cibadmin --md5-sum-versioned no longer prints feature set
  • tools: crm_resource rejects invalid timeouts
  • tools: crm_resource --delete does not accept clone instances
  • tools: crm_resource --delete without -t opt exits with a usage error
  • tools: crm_resource --delete now succeeds if resource doesn't exist
  • tools: crm_resource --option throws usage error if appropriate
  • tools: drop deprecated crm_mon options --as-html,
    --disable-ncurses, --simple-status, and --web-cgi

Fixes since Pacemaker-2.1.9

  • agents: ocf:pacemaker:ping now uses grep -E instead 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 nvpair with invalid id-ref
  • scheduler: ignore value in nvpair with id-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_verify after schema update
  • tools: when injecting a fail count with crm_simulate, use an INFINITY
    score when the cluster would
  • tools: validate stonith_admin --timeout value

Public API changes since Pacemaker-2.1.9

  • Python: add PACEMAKER_CONFIG_DIR to pacemaker.BuildOptions
  • libcib: drop util_compat.h header
  • libcib: drop enum values cib_database, cib_inhibit_bcast,
    cib_mixed_update, cib_quorum_override, and cib_zero_copy
  • libcib: drop cib_api_operations_t members delete_absolute(),
    inputfd(), is_master(), quit(), set_master(), set_op_callback(),
    set_slave(), set_slave_all(), signon_raw(), update()
  • libcib: drop cib_t member op_callback()
  • libcib: drop functions cib_get_generation(), cib_metadata(),
    cib_pref(), get_object_parent(), get_object_path(),
    get_object_root(), query_node_uname(), and set_standby()
  • libcrmcluster: add pcmk_cluster_t member priv
  • 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, and crm_status_type
  • libcrmcluster: drop type alias crm_node_t
  • libcrmcluster: drop struct crm_peer_node_s
  • libcrmcluster: drop pcmk_cluster_t members cpg_handle,
    group, nodeid, uname, and uuid
  • 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_s to pcmk__cluster
  • libcrmcommon: add enum pcmk_ipc_server value pcmk_ipc_unknown
  • libcrmcommon: rename structs pe_action_s to pcmk__action, pe_node_s
    to pcmk__scored_node, pe_node_shared_s to pcmk__node_details,
    pe_resource_s to pcmk__resource, and pe_working_set_s to
    pcmk__scheduler
  • libcrmcommon: add pcmk_node_t members assign and private
  • libcrmcommon: add pcmk_resource_t member private
  • libcrmcommon: change pcmk_scheduler_t member flags type to uint64_t
  • libcrmcommon: add defined constants PCMK_OCF_ROOT,
    PCMK_SCHEDULER_INPUT_DIR, PCMK_SCHEMA_DIR, PCMK_VALUE_CRASH,
    PCMK_VALUE_OFF, and PCMK_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...
Read more

Pacemaker 3.0.0 - Release Candidate 3

23 Dec 20:29

Choose a tag to compare

Pre-release
  • 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:controld agent will now always manage dlm_controld (previously, it would try to manage the long-obsolete gfs_controld if the resource name started with gfs)

Fixes since Pacemaker-3.0.0-rc2

  • agents: ocf:pacemaker:ping now uses grep -E instead of the obsolete egrep
  • tools: when injecting a fail count with crm_simulate, use an INFINITY score when the cluster would
  • tools: validate stonith_admin --timeout value

Public API changes since Pacemaker-3.0.0-rc2

  • Python: add PACEMAKER_CONFIG_DIR to BuildOptions

Pacemaker 3.0.0 - Release Candidate 2

11 Dec 22:36

Choose a tag to compare

Pre-release

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()