Skip to content

Releases: ClusterLabs/pacemaker

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

Pacemaker 2.1.9 - Release Candidate 3

21 Oct 19:44
Compare
Choose a tag to compare
Pre-release
  • 9 commits with 5 files changed, 47 insertions(+), 21 deletions(-)

  • Fixes since Pacemaker-2.1.9-rc2

    • tools: crmadmin -D/--dc_lookup no longer hangs when there is no DC
    • tools: restore crmadmin default timeout to 30 seconds instead of none (regression introduced in 2.1.5)

Pacemaker 2.1.9 - Release Candidate 2

15 Oct 14:01
Compare
Choose a tag to compare
Pre-release
  • 11 commits with 10 files changed, 298 insertions(+), 68 deletions(-)

  • Fixes since Pacemaker-2.1.9-rc1

    • tools: crm_resource did not return error if schema upgrade failed (regression introduced in 2.1.8)
    • libcrmcommon: avoid potential overflow when adding seconds
    • libcib: remote CIB administration now cannot block server
    • tools: don't assert if stdout or stderr is closed by caller

Pacemaker 2.1.9 - Release Candidate 1

03 Oct 19:00
Compare
Choose a tag to compare
Pre-release
  • 134 commits with 245 files changed, 3919 insertions(+), 2142 deletions(-)

  • Features added since Pacemaker-2.1.8

    • CIB: allow no-quorum-policy "fence" and deprecate "suicide"
    • build: support building with latest libxml2
  • Fixes since Pacemaker-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
    • 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 manipulting date/times
    • tools: properly handle resources removed from configuration when displaying node history in crm_mon
  • 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

Pacemaker 2.1.8 - Final

08 Aug 22:37
Compare
Choose a tag to compare
  • 2559 commits with 511 files changed, 46898 insertions(+), 23417 deletions(-)

Known regressions introduced in this release

  • tools: crm_resource does not return error if schema upgrade fails (fixed in 2.1.9)

Features added since Pacemaker-2.1.7

  • local options: support PCMK_panic_action="off" or "sync-off"
  • local options: deprecate PCMK_dh_min_bits environment variable
  • CIB: deprecate omitting validate-with from the CIB or setting it to "none" or an unknown schema
  • CIB: deprecate "default" and "#default" as explicit meta-attribute values
  • CIB: deprecate resource-discovery-enabled node attribute
  • CIB: deprecate support for multiple top-level rules within a location constraint (a single rule may still contain multiple sub-rules)
  • CIB: deprecate support for node attribute expressions in rules beneath op, op_defaults, or fence device meta-attributes
  • CIB: deprecate support for rkt in bundles
  • CIB: drop support for (nonworking) rules based on the #role node attribute (role-based location constraints may still contain rules)
  • CIB manager,controller,fencer,scheduler: deprecate "metadata" command-line option (instead, use crm_attribute --list-options mentioned below)
  • pacemaker-remoted: newer schema files are now downloaded from the cluster, allowing more command-line tools to work when the Pacemaker Remote node has an older Pacemaker version than the cluster
  • agents: deprecate the ocf:pacemaker:o2cb resource agent
  • tools: deprecate --text-fancy command-line option in all tools
  • tools: crm_attribute --list-options lists all possible cluster options
  • tools: crm_resource --list-options lists all possible primitive meta-attributes or special fence device parameters
  • tools: crm_verify now reports invalid fence topology levels
  • tools: new --score option for cibadmin --modify and crm_attribute --update enables expansion of "++" and "+=" in attribute values without a warning (using such expansions without --score is now deprecated)
  • tools: crm_ticket supports standard --output-as/--output-to arguments

Fixes since Pacemaker-2.1.7

  • tools: restore the (deprecated) ability to automatically correct malformed XML passed via standard input (regression introduced in 2.1.7)
  • tools: crm_verify distinguishes configuration warnings and errors (regression introduced in 2.1.7)
  • tools: crm_node -i must initialize nodeid before passing pointer (regression introduced in 2.1.7)
  • CIB manager: avoid memory leak from asynchronous client requests (regression introduced in 2.1.7)
  • scheduler: don't apply colocations twice for promotion priority (regression introduced in 2.1.7)
  • CIB: restore the (deprecated) ability to use validate-with="pacemaker-next" (regression introduced in 2.1.6)
  • controller: avoid zombie children when asynchronous actions exit while a synchronous meta-data action is in progress (regression introduced in 2.1.5)
  • libcrmcommon: avoid file descriptor leak in asynchronous IPC clients (regression introduced in 2.1.3)
  • scheduler: avoid crash when logging an invalid utilization attribute value (regression introduced in 2.1.3)
  • tools: crm_mon no longer crashes on some platforms when the fencer connection is lost (regression introduced in 2.1.0)
  • attribute manager: write Pacemaker Remote node attributes even if node is not cached
  • attribute manager: avoid use-after-free when remote node in cluster node cache
  • attribute manager: correctly propagate utilization attributes to peers to avoid the possibility of later being written out as regular node attributes
  • fencer: correctly parse action-specific timeouts with units other than seconds
  • fencer: avoid unnecessary timeouts when the watchdog timeout is greater than a query timeout, per-device fencing timeout, or stonith-timeout
  • libcrmcommon: avoid possible buffer overflows when parsing and formatting date/times
  • libcrmcommon: don't assume next schema will validate when not transforming
  • libcrmcommon: when displaying XML, don't show "" for empty attribute values, and properly escape special characters
  • libstonithd: avoid double free when invalid replies are received
  • scheduler: if the user specifies a timeout of 0, use the default 20s as documented
  • scheduler: consider group's location constraints when a member is an explicit dependent in a colocation constraint
  • scheduler: sort promotable cloned group instances properly for promotion
  • agents: ocf:pacemaker:SysInfo respects attrd_updater dampening
  • agents: ocf:pacemaker:HealthSMART properly handles SMART data missing temperature
  • tools: cibadmin, crm_attribute, crm_node, crm_resource, crm_shadow, and crm_ticket now retry CIB connections after transient failures
  • tools: cibadmin --replace now leaves "++" and "+=" unexpanded in XML
    attribute values rather than wrongly treat them as 0
  • tools: cibsecret avoids possible truncation issue in process listing
  • tools: crm_attribute --node localhost or --node auto works
  • tools: crm_resource ignores resource meta-attribute node expressions for consistency with how the cluster works
  • tools: crm_resource honors rules when getting utilization attributes
  • tools: crm_verify --output-as=xml includes detailed messages
  • tools: crm_mon exits upon loss of an attached pseudo-terminal to avoid possibility of 100% CPU usage (seen when run via sudo with use_pty configured)

Public API changes since Pacemaker-2.1.7

  • libcib: add cib_score_update cib_call_options value
  • libcib: deprecate functions cib_get_generation(), cib_metadata(), cib_pref(), query_node_uname(), and set_standby()
  • libcib: deprecate T_CIB_DIFF_NOTIFY
  • libcib: deprecate <failed> element in CIB create reply
  • libcrmcluster: add enum pcmk_cluster_layer
  • libcrmcluster: add functions pcmk_cluster_connect(), pcmk_cluster_disconnect(), pcmk_cluster_layer_text(), pcmk_cluster_set_destroy_fn(), pcmk_cpg_set_confchg_fn(), pcmk_cpg_set_deliver_fn(), and pcmk_get_cluster_layer()
  • libcrmcluster: add type pcmk_cluster_t
  • libcrmcluster: deprecate functions cluster_connect_cpg(), cluster_disconnect_cpg(), crm_active_peers(), crm_cluster_connect(), 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_node_cache_size(), crm_remote_peer_cache_refresh(), crm_remote_peer_cache_remove(), crm_remote_peer_get(), crm_set_autoreap(), crm_set_status_callback(), get_cluster_type(), get_local_nodeid(), get_local_node_name(), get_node_name(), is_corosync_cluster(), name_for_cluster_type(), pcmk_cpg_membership(), pcmk_message_common_cs(), reap_crm_member(), send_cluster_message(), send_cluster_text(), and text2msg_type()
  • libcrmcluster: deprecate enums crm_ais_msg_types, crm_status_type, cluster_type_e, crm_ais_msg_class, crm_get_peer_flags, crm_join_phase, and crm_node_flags, including all their values
  • libcrmcluster: deprecate global variables crm_have_quorum, crm_peer_cache, crm_peer_seq, and crm_remote_peer_cache
  • libcrmcluster: deprecate crm_cluster_t and struct crm_cluster_s, including all its members
  • libcrmcluster: deprecate crm_node_t and struct crm_peer_node_s, including all its members
  • libcrmcluster: deprecate constants CRM_NODE_LOST and CRM_NODE_MEMBER
  • libcrmcommon: add constants PCMK_ACTION_METADATA, PCMK_META_ALLOW_MIGRATE, PCMK_META_ALLOW_UNHEALTHY_NODES, PCMK_META_CONTAINER_ATTRIBUTE_TARGET, PCMK_META_CRITICAL, PCMK_META_GLOBALLY_UNIQUE, PCMK_META_INTERLEAVE, PCMK_META_INTERVAL, PCMK_META_INTERVAL_ORIGIN, PCMK_META_IS_MANAGED, PCMK_META_MAINTENANCE, PCMK_META_MULTIPLE_ACTIVE, PCMK_META_NOTIFY, PCMK_META_ON_FAIL, PCMK_META_ORDERED, PCMK_META_PRIORITY, PCMK_META_PROMOTABLE, PCMK_META_RECORD_PENDING, PCMK_META_REMOTE_ADDR, PCMK_META_REMOTE_ALLOW_MIGRATE, PCMK_META_REMOTE_CONNECT_TIMEOUT, PCMK_META_REMOTE_NODE, PCMK_META_REMOTE_PORT, PCMK_META_REQUIRES, PCMK_META_RESOURCE_STICKINESS, PCMK_META_START_DELAY, PCMK_META_TARGET_ROLE, PCMK_META_TIMEOUT, PCMK_META_TIMESTAMP_FORMAT, PCMK_NODE_ATTR_MAINTENANCE, PCMK_NODE_ATTR_STANDBY, PCMK_OPT_BATCH_LIMIT, PCMK_OPT_CLUSTER_DELAY, PCMK_OPT_CLUSTER_INFRASTRUCTURE, PCMK_OPT_CLUSTER_IPC_LIMIT, PCMK_OPT_CLUSTER_NAME, PCMK_OPT_CLUSTER_RECHECK_INTERVAL, PCMK_OPT_CONCURRENT_FENCING, PCMK_OPT_DC_DEADTIME, PCMK_OPT_DC_VERSION, PCMK_OPT_ELECTION_TIMEOUT, PCMK_OPT_ENABLE_ACL, PCMK_OPT_ENABLE_STARTUP_PROBES, PCMK_OPT_FENCE_REACTION, PCMK_OPT_HAVE_WATCHDOG, PCMK_OPT_JOIN_FINALIZATION_TIMEOUT, PCMK_OPT_JOIN_INTEGRATION_TIMEOUT, PCMK_OPT_LOAD_THRESHOLD, PCMK_OPT_MAINTENANCE_MODE, PCMK_OPT_MIGRATION_LIMIT, PCMK_OPT_NODE_ACTION_LIMIT, PCMK_OPT_NODE_HEALTH_BASE, PCMK_OPT_NODE_HEALTH_GREEN, PCMK_OPT_NODE_HEALTH_RED, PCMK_OPT_NODE_HEALTH_STRATEGY, PCMK_OPT_NODE_HEALTH_YELLOW, PCMK_OPT_NODE_PENDING_TIMEOUT, PCMK_OPT_NO_QUORUM_POLICY, PCMK_OPT_PE_ERROR_SERIES_MAX, PCMK_OPT_PE_INPUT_SERIES_MAX, PCMK_OPT_PE_WARN_SERIES_MAX, PCMK_OPT_PLACEMENT_STRATEGY, PCMK_OPT_PRIORITY_FENCING_DELAY, PCMK_OPT_SHUTDOWN_ESCALATION, PCMK_OPT_SHUTDOWN_LOCK, PCMK_OPT_SHUTDOWN_LOCK_LIMIT, PCMK_OPT_STARTUP_FENCING, PCMK_OPT_START_FAILURE_IS_FATAL, PCMK_OPT_STONITH_ACTION, PCMK_OPT_STONITH_ENABLED, PCMK_OPT_STONITH_MAX_ATTEMPTS, PCMK_OPT_STONITH_TIMEOUT, PCMK_OPT_STONITH_WATCHDOG_TIMEOUT, PCMK_OPT_STOP_ALL_RESOURCES, PCMK_OPT_STOP_ORPHAN_ACTIONS, PCMK_OPT_STOP_ORPHAN_RESOURCES, PCMK_OPT_SYMMETRIC_CLUSTER, PCMK_OPT_TRANSITION_DELAY, PCMK_REMOTE_RA_ADDR, PCMK_REMOTE_RA_PORT, PCMK_REMOTE_RA_RECONNECT_INTERVAL, PCMK_REMOTE_RA_SERVER, PCMK_ROLE_PROMOTED, PCMK_ROLE_STARTED, PCMK_ROLE_STOPPED, PCMK_ROLE_UNPROMOTED, PCMK_SCORE_INFINITY, PCMK_VALUE_ALWAYS, PCMK_VALUE_AND, PCMK_VALUE_BALANCED, PCMK_VALUE_BLOCK, PCMK_VALUE_BOOLEAN, PCMK_VALUE_CIB_BOOTSTRAP_OPTIONS, PCMK_VALUE_COROSYNC, PCMK_VALUE_...
Read more

Pacemaker 2.1.8 - Release Candidate 4

17 Jul 16:31
Compare
Choose a tag to compare
Pre-release
  • 6 commits with 21 files changed, 126 insertions(+), 38 deletions(-)

  • Features added since Pacemaker-2.1.8-rc3

    • tools: crm_verify now reports invalid fence topology levels
  • Fixes since Pacemaker-2.1.8-rc3

    • tools: crm_node -i must initialize nodeid before passing pointer (regression introduced in 2.1.7)
    • tools: cibadmin, crm_attribute, crm_node, crm_resource, crm_shadow, and crm_ticket now retry CIB connections after transient failures

Pacemaker 2.1.8 - Release Candidate 3

03 Jul 16:46
Compare
Choose a tag to compare
Pre-release
  • 16 commits with 11 files changed, 157 insertions(+), 57 deletions(-)

  • Features added since Pacemaker-2.1.8-rc2

    • sysconfig: deprecate PCMK_dh_min_bits environment variable
  • Fixes since Pacemaker-2.1.8-rc2

    • libcrmcluster: use local hostname for node name if not configured in Corosync (regression introduced in 2.1.8-rc1)
    • tools: crm_verify distinguishes configuration warnings and errors (regression introduced in 2.1.7)
    • tools: avoid double-free XML in crm_verify after schema update (regression introduced in 2.1.8-rc1)
    • libcrmcommon: avoid potential buffer overflows when formatting date/times
    • scheduler: consider group's location constraints when a member is an explicit dependent in a colocation constraint

Pacemaker 2.1.8 - Release Candidate 2

11 Jun 19:01
Compare
Choose a tag to compare
Pre-release
  • 38 commits with 23 files changed, 600 insertions(+), 283 deletions(-)

  • Features added since Pacemaker-2.1.8-rc1

    • libcrmcommon: support PCMK_panic_action="off" or "sync-off"
  • Fixes since Pacemaker-2.1.8-rc1

    • libcrmcommon: avoid possible buffer overflows when parsing date/times
    • libpacemaker: correctly retrieve any existing fail-count for increment (regression introduced in 2.1.8-rc1)
    • libstonithd: avoid double free when invalid replies are received
    • libstonithd: avoid use-after-free when retrieving metadata of Linux-HA fence agents (regression introduced in 2.1.8-rc1)
    • libstonithd: free escaped metadata descriptions with g_free() (regression introduced in 2.1.8-rc1)
    • tools: restore whitespace to attrd_updater query output (regression introduced in 2.1.8-rc1)

Pacemaker 2.1.8 - Release Candidate 1

15 May 22:42
Compare
Choose a tag to compare
Pre-release
  • 2480 commits with 507 files changed, 45891 insertions(+), 22991 deletions(-)

  • Features added since Pacemaker-2.1.7

    • CIB: deprecate omitting validate-with from the CIB or setting it to "none" or an unknown schema
    • CIB: deprecate "default" and "#default" as explicit meta-attribute values
    • CIB: deprecate resource-discovery-enabled node attribute
    • CIB: deprecate support for multiple top-level rules within a location constraint (a single rule may still contain multiple sub-rules)
    • CIB: deprecate support for node attribute expressions in rules beneath op, op_defaults, or fence device meta-attributes
    • CIB: deprecate support for rkt in bundles
    • CIB: drop support for (nonworking) rules based on the #role node attribute (role-based location constraints may still contain rules)
    • CIB manager,controller,fencer,scheduler: deprecate "metadata" command-line option (instead, use crm_attribute --list-options mentioned below)
    • pacemaker-remoted: newer schema files are now downloaded from the cluster, allowing more command-line tools to work when the Pacemaker Remote node has an older Pacemaker version
    • agents: deprecate the ocf:pacemaker:o2cb resource agent
    • tools: crm_attribute --list-options lists all possible cluster options
    • tools: crm_resource --list-options lists all possible primitive meta-attributes or special fence device parameters
    • tools: new --score option for cibadmin --modify and crm_attribute --update enables expansion of "++" and "+=" in attribute values without a warning (using such expansions without --score is now deprecated)
    • tools: crm_ticket supports standard --output-as/--output-to arguments
    • tools: deprecate --text-fancy standard command-line option
  • Fixes since Pacemaker-2.1.7

    • tools: restore the (deprecated) ability to automatically correct malformed XML passed via standard input (regression introduced in 2.1.7)
    • CIB manager: avoid memory leak from asynchronous client requests (regression introduced in 2.1.7)
    • CIB: restore the (deprecated) ability to use validate-with="pacemaker-next" (regression introduced in 2.1.6)
    • controller: avoid zombie children when asynchronous actions exit while a synchronous meta-data action is in progress (regression introduced in 2.1.5)
    • libcrmcommon: avoid file descriptor leak in asynchronous IPC clients (regression introduced in 2.1.3)
    • tools: crm_mon no longer crashes on some platforms when the fencer connection is lost (regression introduced in 2.1.0)
    • attribute manager: write Pacemaker Remote node attributes even if node is not cached
    • attribute manager: avoid use-after-free when remote node in cluster node cache
    • attribute manager: correctly propagate utilization attributes to peers to avoid the possibility of later being written out as regular node attributes
    • fencer: correctly parse action-specific timeouts with units other than seconds
    • fencer: avoid unnecessary timeouts when the watchdog timeout is greater than a query timeout, per-device fencing timeout, or stonith-timeout
    • libcrmcommon: don't assume next schema will validate when not transforming
    • libcrmcommon: when displaying XML, don't show "<null>" for empty attribute values, and properly escape special characters
    • scheduler: if the user specifies a timeout of 0, use the default 20s as documented
    • agents: ocf:pacemaker:SysInfo respects attrd_updater dampening
    • agents: ocf:pacemaker:HealthSMART properly handles SMART data missing temperature
    • tools: cibadmin --replace now leaves "++" and "+=" unexpanded in XML attribute values rather than wrongly treat them as 0
    • tools: cibsecret avoids possible truncation issue in process listing
    • tools: crm_attribute --node localhost or --node auto works
    • tools: crm_resource ignores resource meta-attribute node expressions for consistency with how the cluster works
    • tools: crm_resource honors rules when getting utilization attributes
    • tools: crm_verify --output-as=xml includes detailed messages
    • tools: crm_mon exits upon loss of an attached pseudo-terminal to avoid possibility of 100% CPU usage (seen when run via sudo with use_pty configured)
  • Public API changes since Pacemaker-2.1.7

    • libcib: add cib_score_update cib_call_options value
    • libcib: deprecate functions cib_get_generation(), cib_metadata(), cib_pref(), query_node_uname(), and set_standby()
    • libcib: deprecate T_CIB_DIFF_NOTIFY
    • libcib: deprecate <failed> element in CIB create reply
    • libcrmcluster: add enum pcmk_cluster_layer
    • libcrmcluster: add functions pcmk_cluster_connect(), pcmk_cluster_disconnect(), pcmk_cluster_layer_text(), pcmk_cluster_set_destroy_fn(), pcmk_cpg_set_confchg_fn(), pcmk_cpg_set_deliver_fn(), and pcmk_get_cluster_layer()
    • libcrmcluster: add type pcmk_cluster_t
    • libcrmcluster: deprecate functions cluster_connect_cpg(), cluster_disconnect_cpg(), crm_active_peers(), crm_cluster_connect(), 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_node_cache_size(), crm_remote_peer_cache_refresh(), crm_remote_peer_cache_remove(), crm_remote_peer_get(), crm_set_autoreap(), crm_set_status_callback(), get_cluster_type(), get_local_nodeid(), get_local_node_name(), get_node_name(), is_corosync_cluster(), name_for_cluster_type(), pcmk_cpg_membership(), pcmk_message_common_cs(), reap_crm_member(), send_cluster_message(), send_cluster_text(), and text2msg_type()
    • libcrmcluster: deprecate enums crm_ais_msg_types, crm_status_type, cluster_type_e, crm_ais_msg_class, crm_get_peer_flags, crm_join_phase, and crm_node_flags, including all their values
    • libcrmcluster: deprecate global variables crm_have_quorum, crm_peer_cache, crm_peer_seq, and crm_remote_peer_cache
    • libcrmcluster: deprecate crm_cluster_t and struct crm_cluster_s, including all its members
    • libcrmcluster: deprecate crm_node_t and struct crm_peer_node_s, including all its members
    • libcrmcluster: deprecate constants CRM_NODE_LOST and CRM_NODE_MEMBER
    • libcrmcommon: add constants PCMK_ACTION_METADATA, PCMK_META_ALLOW_MIGRATE, PCMK_META_ALLOW_UNHEALTHY_NODES, PCMK_META_CONTAINER_ATTRIBUTE_TARGET, PCMK_META_CRITICAL, PCMK_META_GLOBALLY_UNIQUE, PCMK_META_INTERLEAVE, PCMK_META_INTERVAL, PCMK_META_INTERVAL_ORIGIN, PCMK_META_IS_MANAGED, PCMK_META_MAINTENANCE, PCMK_META_MULTIPLE_ACTIVE, PCMK_META_NOTIFY, PCMK_META_ON_FAIL, PCMK_META_ORDERED, PCMK_META_PRIORITY, PCMK_META_PROMOTABLE, PCMK_META_RECORD_PENDING, PCMK_META_REMOTE_ADDR, PCMK_META_REMOTE_ALLOW_MIGRATE, PCMK_META_REMOTE_CONNECT_TIMEOUT, PCMK_META_REMOTE_NODE, PCMK_META_REMOTE_PORT, PCMK_META_REQUIRES, PCMK_META_RESOURCE_STICKINESS, PCMK_META_START_DELAY, PCMK_META_TARGET_ROLE, PCMK_META_TIMEOUT, PCMK_META_TIMESTAMP_FORMAT, PCMK_NODE_ATTR_MAINTENANCE, PCMK_NODE_ATTR_STANDBY, PCMK_OPT_BATCH_LIMIT, PCMK_OPT_CLUSTER_DELAY, PCMK_OPT_CLUSTER_INFRASTRUCTURE, PCMK_OPT_CLUSTER_IPC_LIMIT, PCMK_OPT_CLUSTER_NAME, PCMK_OPT_CLUSTER_RECHECK_INTERVAL, PCMK_OPT_CONCURRENT_FENCING, PCMK_OPT_DC_DEADTIME, PCMK_OPT_DC_VERSION, PCMK_OPT_ELECTION_TIMEOUT, PCMK_OPT_ENABLE_ACL, PCMK_OPT_ENABLE_STARTUP_PROBES, PCMK_OPT_FENCE_REACTION, PCMK_OPT_HAVE_WATCHDOG, PCMK_OPT_JOIN_FINALIZATION_TIMEOUT, PCMK_OPT_JOIN_INTEGRATION_TIMEOUT, PCMK_OPT_LOAD_THRESHOLD, PCMK_OPT_MAINTENANCE_MODE, PCMK_OPT_MIGRATION_LIMIT, PCMK_OPT_NODE_ACTION_LIMIT, PCMK_OPT_NODE_HEALTH_BASE, PCMK_OPT_NODE_HEALTH_GREEN, PCMK_OPT_NODE_HEALTH_RED, PCMK_OPT_NODE_HEALTH_STRATEGY, PCMK_OPT_NODE_HEALTH_YELLOW, PCMK_OPT_NODE_PENDING_TIMEOUT, PCMK_OPT_NO_QUORUM_POLICY, PCMK_OPT_PE_ERROR_SERIES_MAX, PCMK_OPT_PE_INPUT_SERIES_MAX, PCMK_OPT_PE_WARN_SERIES_MAX, PCMK_OPT_PLACEMENT_STRATEGY, PCMK_OPT_PRIORITY_FENCING_DELAY, PCMK_OPT_SHUTDOWN_ESCALATION, PCMK_OPT_SHUTDOWN_LOCK, PCMK_OPT_SHUTDOWN_LOCK_LIMIT, PCMK_OPT_STARTUP_FENCING, PCMK_OPT_START_FAILURE_IS_FATAL, PCMK_OPT_STONITH_ACTION, PCMK_OPT_STONITH_ENABLED, PCMK_OPT_STONITH_MAX_ATTEMPTS, PCMK_OPT_STONITH_TIMEOUT, PCMK_OPT_STONITH_WATCHDOG_TIMEOUT, PCMK_OPT_STOP_ALL_RESOURCES, PCMK_OPT_STOP_ORPHAN_ACTIONS, PCMK_OPT_STOP_ORPHAN_RESOURCES, PCMK_OPT_SYMMETRIC_CLUSTER, PCMK_OPT_TRANSITION_DELAY, PCMK_REMOTE_RA_ADDR, PCMK_REMOTE_RA_PORT, PCMK_REMOTE_RA_RECONNECT_INTERVAL, PCMK_REMOTE_RA_SERVER, PCMK_ROLE_PROMOTED, PCMK_ROLE_STARTED, PCMK_ROLE_STOPPED, PCMK_ROLE_UNPROMOTED, PCMK_SCORE_INFINITY, PCMK_VALUE_ALWAYS, PCMK_VALUE_AND, PCMK_VALUE_BALANCED, PCMK_VALUE_BLOCK, PCMK_VALUE_BOOLEAN, PCMK_VALUE_CIB_BOOTSTRAP_OPTIONS, PCMK_VALUE_COROSYNC, PCMK_VALUE_CREATE, PCMK_VALUE_CUSTOM, PCMK_VALUE_DATE_SPEC, PCMK_VALUE_DEFAULT, PCMK_VALUE_DEFINED, PCMK_VALUE_DELETE, PCMK_VALUE_DEMOTE, PCMK_VALUE_DENY, PCMK_VALUE_DURATION, PCMK_VALUE_DYNAMIC_LIST, PCMK_VALUE_EQ, PCMK_VALUE_EXCLUSIVE, PCMK_VALUE_FAILED, PCMK_VALUE_FALSE, PCMK_VALUE_FENCE, PCMK_VALUE_FENCE_LEGACY, PCMK_VALUE_FENCING, PCMK_VALUE_FREEZE, PCMK_VALUE_GRANTED, PCMK_VALUE_GREEN, PCMK_VALUE_GT, PCMK_VALUE_GTE, PCMK_VALUE_HOST, PCMK_VALUE_IGNORE, PCMK_VALUE_IN_RANGE, PCMK_VALUE_INFINITY, PCMK_VALUE_INTEGER, PCMK_VALUE_LITERAL, PCMK_VALUE_LT, PCMK_VALUE_LTE, PCMK_VALUE_MANDATORY, PCMK_VALUE_MEMBER, PCMK_VALUE_META, PCMK_VALUE_MIGRATE_ON_RED, PCMK_VALUE_MINIMAL, PCMK_VALUE_MINUS_INFINITY, PCMK_VALUE_MODIFY, PCMK_VALUE_MOVE, PCMK_VALUE_NE, PCMK_VALUE_NEVER, PCMK_VALUE_NONE, PCMK_VALUE_NONNEGATIVE_INTEGER, PCMK_VALUE_NOTHING, PCMK_VALUE_NOT_DEFINED, PCMK_VALUE_NUMBER, PCMK_VALUE_OFFLINE, PCMK_VALUE_ONLINE, PCMK_VALUE_ONLY_GREEN, PCMK_VALUE_OPTIONAL, PCMK_VALUE_OR, PCMK_VALUE_PANIC, PCMK_VALUE_PARAM, PCMK_VALUE_PENDING, PCMK_VALUE_PERCENTAGE, PCMK_VALUE_PLUS_INFINITY, PCMK_VALUE_PORT, PCMK_VALUE_PROGRESSIVE, PCMK_VALUE_QUORUM, PCMK_VALUE_READ, PCMK_VALUE_RED, PCMK_VALUE_REMOTE, PCMK_VALUE_RESTART, PCMK_VALUE_RESTART_CONTAINER, PCMK_VALUE_REVOKED, PCMK_VALUE_SCORE, PCMK_VALUE_SELECT, PCMK_VALUE_SER...
Read more

Pacemaker 2.1.7 - Final

19 Dec 21:43
Compare
Choose a tag to compare

Release info

  • Tue Dec 19 2023 Ken Gaillot [email protected] Pacemaker-2.1.7
  • 1388 commits with 358 files changed, 23771 insertions(+), 17219 deletions(-)

Known regressions introduced in this release

  • Controller: alerts added as part of a newly added alerts section do not take effect immediately (fixed in 2.1.9)
  • CIB manager: asynchronous client requests cause a memory leak (fixed in 2.1.8)
  • tools: tools that accept XML from standard input will exit with error status rather than auto-correct certain invalid XML syntax (fixed in 2.1.8)
  • tools: crm_node -i/--cluster-id can fail to return a value due to an uninitialized variable (fixed in 2.1.8)
  • tools: crm_verify no longer distinguishes between configuration warnings and errors (fixed in 2.1.8)
  • scheduler: colocations can be applied twice for promotion priority (fixed in 2.1.8)

Features added since Pacemaker-2.1.6

  • build: allow building with libxml2 2.12.0 and greater
  • CIB: deprecate ordering attribute of resource_set
  • CIB: new cluster option node-pending-timeout (defaulting to 0, meaning no timeout, to preserve existing behavior) allows fencing of nodes that do not join Pacemaker's controller group within this much time after joining the cluster
  • controller: PCMK_node_start_state environment variable now works with Pacemaker Remote nodes
  • tools: crm_verify now supports --quiet option (currently same as default behavior, but in the future, verbose behavior might become the default, so script writers are recommended to explicitly add --quiet if they do not want output)
  • tools: crm_node supports standard --output-as/--output-to arguments
  • tests: CTSlab.py was renamed to cts-lab

Fixes since Pacemaker-2.1.6

  • logging: restore ability to enable XML trace logs by file and function (regression introduced in 2.1.6)
  • scheduler: avoid double free with disabled recurring actions (regression introduced in 2.1.5)
  • tools: consider dampening argument when setting values with attrd_updater (regression introduced in 2.1.5)
  • tools: wait for reply from crm_node -R (regression introduced in 2.0.5)
  • agents: handle dampening parameter consistently and correctly
  • CIB: be more strict about ignoring colocation elements without an ID
  • controller: do not check whether watchdog fencing is enabled if "stonith-watchdog-timeout" is not configured
  • controller: don't try to execute agent action at shutdown
  • controller: avoid race condition when updating node state during join
  • controller: correctly determine state of a fenced node without a name
  • controller: wait a second between fencer connection attempts
  • libpacemaker: avoid shuffling clone instances unnecessarily
  • libpacemaker: get bundle container's promotion score from correct node
  • libpacemaker: role-based colocations now work with bundles
  • libpacemaker: clone-node-max now works with cloned groups
  • scheduler: compare anti-colocation dependent negative preferences against stickiness
  • scheduler: consider explicit colocations with group members
  • scheduler: avoid fencing a pending node without a name
  • scheduler: properly evaluate rules in action meta-attributes
  • scheduler: properly sort rule-based blocks when overwriting values
  • tools: crm_resource --wait will now wait if any actions are pending (previously it would wait only if new actions were planned)
  • tools: crm_verify --output-as=xml now includes detailed messages
  • tools: avoid showing pending nodes as having "<3.15.1" feature set in crm_mon
  • tools: fix display of clone descriptions
  • tools: crm_resource now reports an error rather than timing out when trying to restart an unmanaged resource
  • tools: crm_resource now properly detects which promoted role name to use in ban and move constraints

Public API changes since Pacemaker-2.1.6 (all API/ABI backward-compatible)

  • libcib: cib_t now supports transactions via new cib_api_operations_t methods, new cib_transaction value in enum cib_call_options, and new cib_t transaction and user members
  • libcib: cib_t now supports setting the ACL user for methods via new cib_api_operations_t set_user() method
  • libcib: deprecate cib_api_operations_t methods inputfd(), noop(), quit(), set_op_callback(), and signon_raw()
  • libcib: deprecate cib_call_options values cib_mixed_update, cib_scope_local, and cib_zero_copy
  • libcib: deprecate cib_t op_callback member
  • libcrmcluster: deprecate set_uuid()
  • libcrmcluster: send_cluster_message()'s data argument is const
  • libcrmcommon: add enum pcmk_rc_e values pcmk_rc_compression, pcmk_rc_ns_resolution, and pcmk_rc_no_transaction
  • libcrmcommon,libpe_rules,libpe_status: many APIs have been moved from libpe_rules and libpe_status to libcrmcommon, sometimes with new names (deprecating the old ones), as described below
  • libcrmcommon: add (and deprecate) PCMK_DEFAULT_METADATA_TIMEOUT_MS defined constant
  • libcrmcommon: add enum pcmk_rsc_flags
  • libcrmcommon: add enum pcmk_scheduler_flags
  • libcrmcommon: add pcmk_action_added_to_graph
  • libcrmcommon: add pcmk_action_always_in_graph
  • libcrmcommon: add pcmk_action_attrs_evaluated
  • libcrmcommon: add PCMK_ACTION_CANCEL string constant
  • libcrmcommon: add PCMK_ACTION_CLEAR_FAILCOUNT string constant
  • libcrmcommon: add PCMK_ACTION_CLONE_ONE_OR_MORE string constant
  • libcrmcommon: add PCMK_ACTION_DELETE string constant
  • libcrmcommon: add PCMK_ACTION_DEMOTE string constant
  • libcrmcommon: add pcmk_action_demote to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_DEMOTED string constant
  • libcrmcommon: add pcmk_action_demoted to enum action_tasks
  • libcrmcommon: add pcmk_action_detect_loop
  • libcrmcommon: add PCMK_ACTION_DO_SHUTDOWN string constant
  • libcrmcommon: add pcmk_action_fence to enum action_tasks
  • libcrmcommon: add pcmk_action_inputs_deduplicated
  • libcrmcommon: add PCMK_ACTION_LIST string constant
  • libcrmcommon: add PCMK_ACTION_LOAD_STOPPED string constant
  • libcrmcommon: add PCMK_ACTION_LRM_DELETE string constant
  • libcrmcommon: add PCMK_ACTION_MAINTENANCE_NODES string constant
  • libcrmcommon: add PCMK_ACTION_META_DATA string constant
  • libcrmcommon: add pcmk_action_migratable
  • libcrmcommon: add PCMK_ACTION_MIGRATE_FROM string constant
  • libcrmcommon: add PCMK_ACTION_MIGRATE_TO string constant
  • libcrmcommon: add pcmk_action_migration_abort
  • libcrmcommon: add pcmk_action_min_runnable
  • libcrmcommon: add PCMK_ACTION_MONITOR string constant
  • libcrmcommon: add pcmk_action_monitor to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_NOTIFIED string constant
  • libcrmcommon: add pcmk_action_notified to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_NOTIFY string constant
  • libcrmcommon: add pcmk_action_notify to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_OFF string constant
  • libcrmcommon: add PCMK_ACTION_ON string constant
  • libcrmcommon: add PCMK_ACTION_ONE_OR_MORE string constant
  • libcrmcommon: add pcmk_action_on_dc
  • libcrmcommon: add pcmk_action_optional
  • libcrmcommon: add PCMK_ACTION_PROMOTE string constant
  • libcrmcommon: add pcmk_action_promote to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_PROMOTED string constant
  • libcrmcommon: add pcmk_action_promoted to enum action_tasks
  • libcrmcommon: add pcmk_action_pseudo
  • libcrmcommon: add PCMK_ACTION_REBOOT string constant
  • libcrmcommon: add PCMK_ACTION_RELOAD string constant
  • libcrmcommon: add PCMK_ACTION_RELOAD_AGENT string constant
  • libcrmcommon: add pcmk_action_reschedule
  • libcrmcommon: add pcmk_action_runnable
  • libcrmcommon: add PCMK_ACTION_RUNNING string constant
  • libcrmcommon: add pcmk_action_shutdown to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_START string constant
  • libcrmcommon: add pcmk_action_start to enum action_tasks
  • libcrmcommon: add pcmk_action_started to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_STATUS string constant
  • libcrmcommon: add PCMK_ACTION_STONITH string constant
  • libcrmcommon: add PCMK_ACTION_STOP string constant
  • libcrmcommon: add pcmk_action_stop to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_STOPPED string constant
  • libcrmcommon: add pcmk_action_stopped to enum action_tasks
  • libcrmcommon: add pcmk_action_t type
  • libcrmcommon: add pcmk_action_unspecified to enum action_tasks
  • libcrmcommon: add PCMK_ACTION_VALIDATE_ALL string constant
  • libcrmcommon: add pcmk_assignment_methods_t type
  • libcrmcommon: add PCMK_DEFAULT_ACTION_TIMEOUT_MS defined constant
  • libcrmcommon: add pcmk_log_xml_as()
  • libcrmcommon: add PCMK_META_CLONE_MAX string constant
  • libcrmcommon: add PCMK_META_CLONE_MIN string constant
  • libcrmcommon: add PCMK_META_CLONE_NODE_MAX string constant
  • libcrmcommon: add PCMK_META_FAILURE_TIMEOUT string constant
  • libcrmcommon: add PCMK_META_MIGRATION_THRESHOLD string constant
  • libcrmcommon: add PCMK_META_PROMOTED_MAX string constant
  • libcrmcommon: add PCMK_META_PROMOTED_NODE_MAX string constant
  • libcrmcommon: add pcmk_multiply_active_block to enum rsc_recovery_type
  • libcrmcommon: add pcmk_multiply_active_restart to enum rsc_recovery_type
  • libcrmcommon: add pcmk_multiply_active_stop to enum rsc_recovery_type
  • libcrmcommon: add pcmk_multiply_active_unexpected to enum rsc_recovery_type
  • libcrmcommon: add PCMK_NODE_ATTR_TERMINATE string constant
  • libcrmcommon: add pcmk_node_t type
  • libcrmcommon: add pcmk_node_variant_cluster
  • libcrmcommon: add pcmk_node_variant_remote
  • libcrmcommon: add pcmk_no_action_flags
  • libcrmcommon: add pcmk_no_quorum_demote
  • libcrmcommon: add pcmk_no_quorum_fence
  • libcrmcommon: add pcmk_no_quorum_freeze
  • libcrmcommon: add pcmk_no_quorum_ignore
  • libcrmcommon: add pcmk_no_quorum_stop
  • libcrmcommon: add pcmk_on_fail_ban to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_block to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_demote to enum action_fail_response
  • libcrmcommon: add pcmk_o...
Read more