Skip to content

Releases: ClusterLabs/pacemaker

Pacemaker 3.0.1 - Final

07 Aug 15:18
16e74fc
Compare
Choose a tag to compare

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

Pacemaker 3.0.0 - Release Candidate 1

18 Nov 15:57
Compare
Choose a tag to compare
Pre-release
  • 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_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: 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-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

  • 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

Public API changes since Pacemaker-2.1.9

  • 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: 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(), and sorted_xml()
  • libcrmcommon: drop headers agents_compat.h, compatibility.h,
    logging_compat.h, `mainloop_compat...
Read more

Pacemaker 2.1.9 - Final

31 Oct 20:04
Compare
Choose a tag to compare
  • 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