Skip to content

Releases: ClusterLabs/pacemaker

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: 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_SERIALIZE, PCMK_VALUE_STANDBY, PCMK_VALUE_STATIC_LIST, PCMK_VALUE_STATUS, PCMK_VALUE_STOP, PCMK_VALUE_STOP...
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 kgaillot@redhat.com Pacemaker-2.1.7
  • 1388 commits with 358 files changed, 23771 insertions(+), 17219 deletions(-)

Known regressions introduced in this release

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

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_on_fail_fence_node to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_ignore to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_reset_remote to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_restart to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_restart_container to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_standby_node to action_fail_response
  • libcrmcommon: add pcmk_on_fail_stop to enum action_fail_response
  • libcrmcommon: add pcmk_probe_always...
Read more

Pacemaker 2.1.7 - Release Candidate 4

12 Dec 23:11
Compare
Choose a tag to compare
Pre-release
  • 4 commits with 1 file changed, 2 insertions(+), 1 deletion(-)

  • Fixes since Pacemaker-2.1.7-rc3

    • attrd: Deletion of transient attributes works again (regression introduced in 2.1.7-rc1)

Pacemaker 2.1.7 - Release Candidate 3

07 Dec 15:50
Compare
Choose a tag to compare
Pre-release
  • 10 commits with 9 files changed, 72 insertions(+), 19 deletions(-)

  • Fixes since Pacemaker-2.1.7-rc2

    • agents: handle dampening parameter consistently and correctly
    • scheduler: update recheck time for node-pending-timeout
    • tools: fix XML output regression introduced in 2.1.7-rc1

Pacemaker 2.1.7 - Release Candidate 2

22 Nov 09:37
Compare
Choose a tag to compare
Pre-release
  • 26 commits with 14 files changed, 119 insertions(+), 46 deletions(-)

Features added since Pacemaker-2.1.7-rc1

  • Default of new node-pending-timeout option has been changed to 0 to preserve previous behavior

Fixes since Pacemaker-2.1.7-rc1

  • build: Allow building with libxml2 2.12.0 and greater
  • 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

Pacemaker 2.1.7 - Release Candidate 1

31 Oct 18:03
Compare
Choose a tag to compare
Pre-release
  • 1345 commits with 358 files changed, 23622 insertions(+), 17197 deletions(-)

Features added since Pacemaker-2.1.6

  • CIB: deprecate "ordering" attribute of "resource_set"
  • CIB: new cluster option "node-pending-timeout" (defaulting to 2 hours - changed to 0 to preserve previous behavior in rc2) to fence nodes that do not join Pacemaker's controller group within this much time after joining the cluster
  • controller: PCMK_node_start_state now works with Pacemaker Remote nodes
  • crm_verify: add --quiet option (currently same as default behavior)
  • 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)
  • 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 works 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: 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 time 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 (fully 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_on_fail_fence_node to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_ignore to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_reset_remote to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_restart to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_restart_container to enum action_fail_response
  • libcrmcommon: add pcmk_on_fail_standby_node to action_fail_response
  • libcrmcommon: add pcmk_on_fail_stop to enum action_fail_response
  • libcrmcommon: add pcmk_probe_always to enum pe_discover_e
  • libcrmcommon: add pcmk_probe_exclusive to enum pe_discover_e
  • libcrmcommon: add pcmk_probe_never to enum pe_discover_e
  • libcrmcommon: add pcmk_requires_fencing to enum rsc_start_requirement
  • libcrmcommon: add pcmk_requires_nothing to enum rsc_start_requirement
  • libcrmcommon: add pcmk_requires_quorum to enum rsc_start_requirement
  • libcrmcommon: add pcmk_resource_t type
  • libcrmcommon: add pcmk_role_promoted to enum rsc_role_e
  • libcrmcommon: add pcmk_role_started to enum rsc_role_e
  • libcrmcommon: add p...
Read more

Pacemaker 2.1.6 - Final

24 May 17:00
Compare
Choose a tag to compare

Release info

  • Wed May 24 2023 Ken Gaillot kgaillot@redhat.com Pacemaker-2.1.6
  • 1124 commits with 402 files changed, 25220 insertions(+), 14751 deletions(-)

Known regressions introduced in this release

  • The CIB may no longer use validate-with="pacemaker-next" (fixed in 2.1.8)
  • Using PCMK_trace_files and PCMK_trace_functions no longer works for XML trace logs (fixed in 2.1.7)

Features added since Pacemaker-2.1.5

  • CIB: deprecate "moon" in date_spec elements in rules
  • CIB: deprecate support for Nagios resources
  • CIB: utilization attributes may be set as transient
  • CIB: alerts and alert recipients support an "enabled" meta-attribute
  • All daemons support --output-as/--output-to options including XML output with interactive options
  • tools: attrd_updater supports --wait parameter that can be set to "no" (return immediately after submitting request, which is the default and previous behavior), "local" (return after the new value has taken effect on the local node), or "cluster" (return after new value has taken effect on all nodes)
  • tools: attrd_updater supports -z/--utilization to modify utilization attributes
  • tools: attrd_updater supports --pattern to affect all attributes matching a given pattern
  • tools: crm_attribute supports --pattern with permanent node attributes (in addition to previous support for transient attributes) + tools: crm_mon displays resource descriptions if --show-description or --show-detail is given
  • tools: crm_mon shows maintenance mode when enabled per-resource
  • tools: crm_mon --interval can be used to update XML and text output (in addition to previous support for HTML)
  • tools: crm_mon fencing history includes microseconds in timestamps
  • tools: crm_mon shows which node it was run on
  • tools: crm_mon shows whether Pacemaker or Pacemaker Remote is running or shutting down
  • tools: deprecate crm_mon --simple-status
  • tools: crm_resource --element option can be used with --get-parameter, --set-parameter, and --delete-parameter to modify resource properties such as class, provider, type, and description
  • tools: crm_resource --list shows resource descriptions better (including when --output-as=xml is used)
  • tools: crm_shadow supports standard --output-as/--output-to arguments

Fixes since Pacemaker-2.1.5

  • pacemakerd: -S should wait for cluster to shut down before returning (regression introduced in 2.1.1)
  • Pacemaker Remote: remote nodes wait for all-clear from cluster before shutting down (regression introduced in 2.1.5)
  • tools: attrd_updater --query without --node shows attributes from all nodes instead of local node (regression introduced in 2.1.5)
  • pacemaker-attrd: Preserve a Pacemaker Remote node's transient attributes if its connection to the cluster is lost but reconnects
  • CIB manager: successful CIB schema upgrade always forces a write
  • controller: avoid election storm when joining node has CIB newer than DC can accept
  • controller: avoid election storm due to incompatible CIB
  • controller: avoid use-after-free when disconnecting proxy IPCs during shutdown
  • controller: avoid double-incrementing failcount for simulated failures
  • controller: avoid reprobing remote nodes when target is a cluster node
  • controller: delay join finalization if a transition is in progress
  • controller: initial fencing timeout includes any priority-fencing-delay
  • controller: shutdown gracefully if scheduler connection is interrupted during shutdown
  • fencer: avoid crash during shutdown when action is pending
  • fencer: calculate fencing timeout correctly when watchdog is used with topology
  • fencer: apply priority-fencing-delay only to first device tried
  • fencer: total and per-device fencing timeouts include any priority-fencing-delay and pcmk_delay_base
  • scheduler: fix a number of corner cases with colocations, including preventing a resource from starting if it has a mandatory colocation with a group whose start is blocked, preventing optional anti-colocation from overriding infinite stickiness, and correctly considering a group's colocation dependents when the group is itself colocated with a clone
  • scheduler: honor as many mandatory colocations as possible before considering any optional ones
  • scheduler: ensure earlier group member starts occur after later member stops
  • scheduler: handle orderings with bundles more correctly
  • scheduler: ensure expired results never affect resource state
  • scheduler: handle cleaned migrate_from history correctly
  • scheduler: prevent pending monitor of one clone instance from causing unexpected stop of other instances
  • scheduler: prevent inactive clone instances from starting if probe is unrunnable on any node
  • agents: SysInfo calculates cpu_load correctly
  • tools: cibadmin --scope accepts status
  • tools: crm_attribute -p "" works same as -p when called from resource agent
  • tools: crm_attribute recognizes "-INFINITY" as value instead of options
  • tools: crm_mon avoids displaying recurring monitors as pending if first attempt fails
  • tools: crm_mon --daemonize shows disconnected message when CIB connection is lost instead of continuing to display last known state
  • tools: crm_mon avoids crash when built without curses library support
  • tools: crm_mon supports --output-as=none correctly
  • tools: crm_resource --ban or --move works with single-replica bundles
  • tools: crm_shadow --commit now works with CIB_file
  • tools: crm_simulate failure injection avoids crash if node name is unknown

Public API changes since Pacemaker-2.1.5

  • Python: New "pacemaker" Python module (packaged as python3-pacemaker in RPMs built with "make rpm") contains supported public API with BuildOptions and ExitStatus classes
  • libcib: add client_id() method member to cib_api_operations_t
  • libcib: deprecate cib_database
  • libcib: deprecate cib_quorum_override
  • libcib: deprecate the cib_api_operations_t:update() method
  • libcrmcluster: add pcmk_cluster_new()
  • libcrmcluster: add crm_join_nack_quiet
  • libcrmcluster: add pcmk_cluster_free()
  • libcrmcluster: node argument to send_cluster_message() is now const
  • libcrmcluster: node argument to send_cluster_text() is now const
  • libcrmcommon: add crm_time_usecs
  • libcrmcommon: add PCMK_META_ENABLED
  • libcrmcommon: add pcmk_pacemakerd_state_remote
  • libcrmcommon: add pcmk_rc_bad_xml_patch
  • libcrmcommon: add pcmk_rc_bad_input
  • libcrmcommon: add pcmk_rc_disabled
  • libcrmcommon: deprecate add_xml_nocopy()
  • libcrmcommon: deprecate log_data_element()
  • libcrmcommon: deprecate PCMK_RESOURCE_CLASS_NAGIOS
  • libcrmcommon: deprecate PCMK_RESOURCE_CLASS_UPSTART
  • libcrmcommon: deprecate XML_ATTR_UUID
  • libcrmcommon: deprecate XML_CIB_ATTR_REPLACE
  • libcrmcommon: deprecate xml_log_changes()
  • libcrmcommon: deprecate xml_log_options enum
  • libcrmcommon: deprecate xml_log_patchset()
  • libcrmcommon: argument to pcmk_xe_is_probe() is now const
  • libcrmcommon: argument to pcmk_xe_mask_probe_failure() is now const
  • libcrmcommon: patchset argument of xml_log_patchset() is now const
  • libcrmcommon: rsc_op_expected_rc() argument is now const
  • libcrmcommon: second argument to copy_in_properties() is now const
  • libcrmcommon: xml argument of xml_log_changes() is now const
  • libcrmservice: deprecate enum nagios_exitcode
  • libpacemaker: add pcmk_query_node_info()
  • libpacemaker: add pcmk_query_node_name()
  • libpacemaker: multiple arguments to pcmk_simulate() are now const
  • libpacemaker: node argument to pcmk_resource_digests() is now const
  • libpacemaker: node_types argument to pcmk_list_nodes() is now const
  • libpacemaker: pcmk_controller_status() node name arg is now const
  • libpe_rules: last argument to pe_expand_re_matches() is now const
  • libpe_rules: rule_data argument to pe_eval_nvpairs() is now const
  • libpe_rules: second argument to pe_eval_expr() and pe_eval_subexpr() is now const
  • libpe_rules: second argument to pe_eval_rules() is now const
  • libpe_rules: second argument to pe_unpack_nvpairs() is now const
  • libpe_status: add pe_rsc_detect_loop
  • libpe_status: add pe_rsc_replica_container
  • libpe_status: deprecate fixed member of pe_node_t
  • libpe_status: argument to pe_rsc_is_bundled() is now const
  • libpe_status: argument to rsc_printable_id() is now const
  • libpe_status: first argument to calculate_active_ops() is now const
  • libpe_status: first argument to pe_find_node() is now const + libpe_status: first argument to pe_find_node_any() is now const
  • libpe_status: first argument to pe_find_node_id() is now const
  • libpe_status: first argument to resource_object_functions_t:is_filtered() is now const

Pacemaker 2.1.6 - Release Candidate 2

02 May 19:41
Compare
Choose a tag to compare
Pre-release

Features added since Pacemaker-2.1.6-rc1

  • scheduler: deprecate "moon" in date_spec elements in rules
  • scheduler: deprecate support for Nagios resources

Fixes since Pacemaker-2.1.6-rc1

  • pacemakerd: -S should wait for cluster to shut down before returning (regression introduced in 2.1.1)
  • pacemaker-attrd: Preserve a Pacemaker Remote node's transient attributes if its connection to the cluster is lost but reconnects
  • controller: initial fencing timeout includes any priority-fencing-delay
  • fencer: apply priority-fencing-delay only to first device tried
  • fencer: total and per-device fencing timeouts include any priority-fencing-delay and pcmk_delay_base
  • scheduler: honor as many mandatory colocations as possible before considering any optional ones

Public API changes since Pacemaker-2.1.6-rc1

  • libcrmcommon: deprecate PCMK_RESOURCE_CLASS_NAGIOS
  • libcrmcommon: deprecate PCMK_RESOURCE_CLASS_UPSTART
  • libcrmservice: deprecate enum nagios_exitcode

Pacemaker 2.1.6 - Release Candidate 1

17 Apr 13:40
Compare
Choose a tag to compare
Pre-release

Features added since Pacemaker-2.1.5

  • CIB: utilization attributes may be set as transient
  • CIB: alerts and alert recipients support an "enabled" meta-attribute
  • All daemons support --output-as/--output-to options including XML output with interactive options
  • tools: attrd_updater supports --wait parameter that can be set to "no" (return immediately after submitting request, which is the default and previous behavior), "local" (return after the new value has taken effect on the local node), or "cluster" (return after new value has taken effect on all nodes)
  • tools: attrd_updater supports -z/--utilization to modify utilization attributes
  • tools: attrd_updater supports --pattern to affect all attributes matching a given pattern
  • tools: crm_attribute supports --pattern with permanent node attributes (in addition to previous support for transient attributes)
  • tools: crm_mon displays resource descriptions if --show-description or --show-detail is given
  • tools: crm_mon shows maintenance mode when enabled per-resource
  • tools: crm_mon --interval can be used to update XML and text output (in addition to previous support for HTML)
  • tools: crm_mon fencing history includes microseconds in timestamps
  • tools: crm_mon shows which node it was run on
  • tools: crm_mon shows whether Pacemaker or Pacemaker Remote is running or shutting down
  • tools: deprecate crm_mon --simple-status
  • tools: crm_resource --element option can be used with --get-parameter, --set-parameter, and --delete-parameter to modify resource properties such as class, provider, type, and description
  • tools: crm_resource --list shows resource descriptions better (including when --output-as=xml is used)
  • tools: crm_shadow supports standard --output-as/--output-to arguments

Fixes since Pacemaker-2.1.5

  • Pacemaker Remote: remote nodes wait for all-clear from cluster before shutting down (regression introduced in 2.1.5)
  • tools: attrd_updater --query without --node shows attributes from all nodes instead of local node (regression introduced in 2.1.5)
  • CIB manager: successful CIB schema upgrade always forces a write
  • controller: avoid election storm when joining node has CIB newer than DC can accept
  • controller: avoid election storm due to incompatible CIB
  • controller: avoid use-after-free when disconnecting proxy IPCs during shutdown
  • controller: delay join finalization if a transition is in progress
  • controller: avoid double-incrementing failcount for simulated failures
  • controller: avoid reprobing remote nodes when target is a cluster node
  • controller: shutdown gracefully if scheduler connection is interrupted during shutdown
  • fencer: avoid crash during shutdown when action is pending
  • fencer: calculate fencing timeout correctly when watchdog is used with topology
  • scheduler: fix a number of corner cases with colocations, including preventing a resource from starting if it has a mandatory colocation with a group whose start is blocked, preventing optional anti-colocation from overriding infinite stickiness, and correctly considering a group's colocation dependents when the group is itself colocated with a clone
  • scheduler: handle orderings with bundles more correctly
  • scheduler: ensure expired results never affect resource state
  • scheduler: handle cleaned migrate_from history correctly
  • scheduler: prevent pending monitor of one clone instance from causing unexpected stop of other instances
  • scheduler: prevent inactive clone instances from starting if probe is unrunnable on any node
  • agents: SysInfo calculates cpu_load correctly
  • tools: cibadmin --scope accepts status
  • tools: crm_attribute -p "" works same as -p when called from resource agent
  • tools: crm_attribute recognizes "-INFINITY" as value instead of options
  • tools: crm_mon avoids displaying recurring monitors as pending if first attempt fails
  • tools: crm_mon --daemonize shows disconnected message when CIB connection is lost instead of continuing to display last known state
  • tools: crm_mon avoids crash when built without curses library support
  • tools: crm_mon supports --output-as=none correctly
  • tools: crm_resource --ban or --move works with single-replica bundles
  • tools: crm_shadow --commit now works with CIB_file
  • tools: crm_simulate failure injection avoids crash if node name is unknown

Public API changes since Pacemaker-2.1.5

  • Python: New "pacemaker" Python module, packaged as python3-pacemaker in RPMs built with "make rpm", contains supported public API with BuildOptions and ExitStatus classes
  • libcrmcluster: add crm_join_nack_quiet
  • libcib: add client_id() method member to cib_api_operations_t
  • libcib: deprecate cib_database
  • libcib: deprecate cib_quorum_override
  • libcib: deprecate the cib_api_operations_t:update() method
  • libcrmcluster: add pcmk_cluster_new()
  • libcrmcluster: add pcmk_cluster_free()
  • libcrmcluster: node argument to send_cluster_message() is now const
  • libcrmcluster: node argument to send_cluster_text() is now const
  • libcrmcommon: add crm_time_usecs
  • libcrmcommon: add PCMK_META_ENABLED
  • libcrmcommon: add pcmk_pacemakerd_state_remote
  • libpacemaker: add pcmk_query_node_info()
  • libpacemaker: add pcmk_query_node_name()
  • libcrmcommon: add pcmk_rc_bad_xml_patch
  • libcrmcommon: add pcmk_rc_bad_input
  • libcrmcommon: add pcmk_rc_disabled
  • libcrmcommon: deprecate add_xml_nocopy()
  • libcrmcommon: deprecate log_data_element()
  • libcrmcommon: deprecate XML_ATTR_UUID
  • libcrmcommon: deprecate XML_CIB_ATTR_REPLACE
  • libcrmcommon: deprecate xml_log_changes()
  • libcrmcommon: deprecate xml_log_options enum
  • libcrmcommon: deprecate xml_log_patchset()
  • libcrmcommon: argument to pcmk_xe_is_probe() is now const
  • libcrmcommon: argument to pcmk_xe_mask_probe_failure() is now const
  • libcrmcommon: patchset argument of xml_log_patchset() is now const
  • libcrmcommon: rsc_op_expected_rc() argument is now const
  • libcrmcommon: second argument to copy_in_properties() is now const
  • libcrmcommon: xml argument of xml_log_changes() is now const
  • libpacemaker: multiple arguments to pcmk_simulate() are now const
  • libpacemaker: node argument to pcmk_resource_digests() is now const
  • libpacemaker: node_types argument to pcmk_list_nodes() is now const
  • libpacemaker: pcmk_controller_status() node name arg is now const
  • libpe_rules: last argument to pe_expand_re_matches() is now const
  • libpe_rules: rule_data argument to pe_eval_nvpairs() is now const
  • libpe_rules: second argument to pe_eval_expr() and pe_eval_subexpr() is now const
  • libpe_rules: second argument to pe_eval_rules() is now const
  • libpe_rules: second argument to pe_unpack_nvpairs() is now const
  • libpe_status: add pe_rsc_detect_loop
  • libpe_status: add pe_rsc_replica_container
  • libpe_status: deprecate fixed member of pe_node_t
  • libpe_status: argument to pe_rsc_is_bundled() is now const
  • libpe_status: argument to rsc_printable_id() is now const
  • libpe_status: first argument to calculate_active_ops() is now const
  • libpe_status: first argument to pe_find_node() is now const
  • libpe_status: first argument to pe_find_node_any() is now const
  • libpe_status: first argument to pe_find_node_id() is now const
  • libpe_status: first argument to resource_object_functions_t:is_filtered() is now const

Pacemaker 2.1.5 - Final

08 Dec 15:52
Compare
Choose a tag to compare

Release info

  • Wed Dec 7 2022 Ken Gaillot kgaillot@redhat.com Pacemaker-2.1.5
  • 1287 commits with 447 files changed, 33546 insertions(+), 21518 deletions(-)

Known regressions introduced in this release

  • Asynchronous actions can leave zombie processes if they exit while a synchronous meta-data action is in progress (fixed in 2.1.8)
  • If Pacemaker Remote is stopped, it will no longer wait until the cluster notifies it that all resources have been moved off the node (fixed in 2.1.6)
  • attrd_updater --query without --node shows attributes from the local node instead of all nodes (fixed in 2.1.6)
  • attrd_updater ignores its dampening argument when setting values (fixed in 2.1.7)
  • A double free crash can occur if a recurring action is disabled (fixed in 2.1.7)

Features added since Pacemaker-2.1.4

  • CIB: access control lists (ACLs) for groups are supported
  • CIB: ACL target and group XML supports "name" attribute to specify a name that is not a unique XML ID
  • CIB: deprecate pacemaker-next schema
  • CIB: deprecate first-instance and then-instance in ordering constraints and rsc-instance and with-rsc-instance in colocation constraints (only usable with pacemaker-next schema)
  • CIB: deprecate "collocated" and "ordered" meta-attributes for groups (true is default, and resource sets should be used instead of false)
  • build: support building with -D_TIME_BITS=64
  • build: support building with compilers that are strict about void
  • build: allow building RPMs from source distribution
  • fencer: deprecate stand-alone mode
  • agents: ClusterMon, controld, HealthCPU, ifspeed, and SysInfo agents support OCF 1.1 standard
  • agents: non-functional SystemHealth agent has been removed
  • tools: non-functional ipmiservicelogd and notifyServicelogEvent tools have been removed
  • tools: crm_attribute supports querying all attributes on a given node
  • tools: crm_attribute --query, --delete, and --update support regular expressions
  • tools: crm_error supports standard --output-as/--output-to arguments
  • tools: crm_error lists all return codes if none are specified
  • tools: crm_mon --show-detail displays the CRM feature set of each node and makes display of fencing actions more technical
  • tools: crm_resource --why checks node health
  • tools: crm_resource --constraints now accepts --recursive (equivalent to --stack) and --force (to show constraints for a group member instead of the group)

Fixes since Pacemaker-2.1.4

  • tools: crm_error does not print spurious output when given a negative return code argument (regression introduced in 2.0.4)
  • tools: avoid crash if crm_resource is given extraneous arguments (regression introduced in 2.0.5)
  • tools: stonith_admin --validate XML output shows correct validation status and errors (regressions introduced in 2.0.5 and 2.1.2)
  • tools: crm_resource --list-operations shows pending operations as pending instead of complete (regression introduced in 2.1.0)
  • controller: move resources if appropriate after they are reordered in CIB (regression introduced in 2.1.3)
  • fencing: allow fence devices to be registered if local node is not in CIB (regression introduced in 2.1.3)
  • tools: crm_mon --one-shot should succeed even if pacemaker is shutting down (regression introduced in 2.1.3)
  • tools: avoid memory leak in crm_mon (regression introduced in 2.1.3)
  • tools: crm_attribute --quiet outputs nothing instead of "(null)" if attribute has no value (regression introduced in 2.1.3)
  • tools: accept deprecated and unused attrd_updater --quiet option (regression introduced in 2.1.3)
  • CIB: avoid crashes when XML IDs grow very long
  • controller: pre-load agent metadata asynchronously to avoid timeout when agent's metadata action runs crm_node
  • controller: avoid timing issue that increments resource fail count twice
  • fencing: unfence all nodes after device configuration changes
  • fencing: avoid memory leaks when processing topology requests
  • fencing: ignore node that executed action when checking whether actions are equivalent
  • scheduler,controller: calculate secure digest consistently
  • scheduler: consider roles when blocking colocation dependents
  • scheduler: prioritize group colocations properly
  • scheduler: properly consider effect of "with group" colocations
  • scheduler: handle corner cases in live migrations
  • scheduler: avoid perpetual moving of bundle containers in certain situations
  • scheduler: properly calculate resource parameter digests without history
  • scheduler: do not enforce stop if newer monitor indicates resource was not running on target of failed migrate_to
  • scheduler: do not enforce stop on rejoined node after failed migrate_to
  • scheduler: don't demote on expected node when multiple-active is set to stop_unexpected
  • scheduler: prevent resources running on multiple nodes after partial live migration
  • scheduler: restart resource instead of reload if extra parameters in operation change
  • schemas: Consider days, minutes, seconds, and yeardays in date expressions valid
  • schemas: Consider in_range with an end and duration valid
  • schemas: Consider score and score-attribute optional in rules
  • tools: crm_resource --digests uses most recent operation history entry
  • tools: if multiple return code options are given to crm_error, use the last one
  • tools: crm_resource correctly detects if a resource is unmanaged or disabled even if there are multiple settings using rules

Public API changes since Pacemaker-2.1.4

  • libcib: add cib_api_operations_t:set_primary
  • libcib: add cib_api_operations_t:set_secondary
  • libcib: deprecate cib_api_operations_t:delete_absolute()
  • libcib: deprecate cib_api_operations_t:is_master
  • libcib: deprecate cib_api_operations_t:set_master
  • libcib: deprecate cib_api_operations_t:set_slave
  • libcib: deprecate cib_api_operations_t:set_slave_all
  • libcrmcommon: deprecated XML_CIB_TAG_MASTER constant is usable again (regression introduced in 2.1.0)
  • libcrmcommon: pcmk_ipc_api_t supports attribute manager IPC
  • libcrmcommon: add pcmk_rc_unpack_error
  • libcrmcommon: add CRM_EX_FAILED_PROMOTED
  • libcrmcommon: add CRM_EX_NONE
  • libcrmcommon: add CRM_EX_PROMOTED
  • libcrmcommon: add pcmk_readable_score()
  • libcrmcommon: add PCMK_XA_PROMOTED_MAX_LEGACY string constant
  • libcrmcommon: add PCMK_XA_PROMOTED_NODE_MAX_LEGACY string constant
  • libcrmcommon: argument to crm_time_check() is now const
  • libcrmcommon: argument to pcmk_controld_api_replies_expected() is now const
  • libcrmcommon: argument to pcmk_xml_attrs2nvpairs() is now const
  • libcrmcommon: argument to xml2list() is now const
  • libcrmcommon: argument to xml_acl_denied() is now const
  • libcrmcommon: argument to xml_acl_enabled() is now const
  • libcrmcommon: argument to xml_get_path() is now const
  • libcrmcommon: arguments to crm_time_add() are now const
  • libcrmcommon: arguments to crm_time_compare() are now const
  • libcrmcommon: arguments to crm_time_subtract() are now const
  • libcrmcommon: argv argument to crm_log_preinit() is now char *const *
  • libcrmcommon: crm_time_calculate_duration() arguments are now const
  • libcrmcommon: deprecate CRM_ATTR_RA_VERSION
  • libcrmcommon: deprecate crm_destroy_xml()
  • libcrmcommon: deprecate crm_ipc_server_error
  • libcrmcommon: deprecate crm_ipc_server_info
  • libcrmcommon: deprecate CRM_OP_LRM_QUERY
  • libcrmcommon: deprecate crm_str()
  • libcrmcommon: deprecate PCMK_XE_PROMOTED_MAX_LEGACY string constant
  • libcrmcommon: deprecate PCMK_XE_PROMOTED_NODE_MAX_LEGACY constant
  • libcrmcommon: deprecate score2char()
  • libcrmcommon: deprecate score2char_stack()
  • libcrmcommon: deprecate XML_ATTR_RA_VERSION
  • libcrmcommon: deprecate xml_get_path()
  • libcrmcommon: deprecate XML_PARANOIA_CHECKS
  • libcrmcommon: deprecate XML_TAG_OP_VER_ATTRS
  • libcrmcommon: deprecate XML_TAG_OP_VER_META
  • libcrmcommon: deprecate XML_TAG_RSC_VER_ATTRS
  • libcrmcommon: dt argument of crm_time_get_gregorian() is now const
  • libcrmcommon: dt argument of crm_time_get_isoweek() is now const
  • libcrmcommon: dt argument of crm_time_get_ordinal() is now const
  • libcrmcommon: dt argument of crm_time_get_timeofday() is now const
  • libcrmcommon: dt argument of crm_time_get_timezone() is now const
  • libcrmcommon: first argument to create_reply() is now const
  • libcrmcommon: first argument to crm_copy_xml_element() is now const
  • libcrmcommon: first argument to find_xml_node() is now const
  • libcrmcommon: first argument to get_message_xml() is now const
  • libcrmcommon: first argument to pcmk_ipc_name() is now const
  • libcrmcommon: first argument to xml_patch_versions() is now const
  • libcrmcommon: last argument to crm_write_blackbox() is now const
  • libcrmcommon: add pcmk_rc_duplicate_id
  • libcrmcommon: add pcmk_result_get_strings()
  • libcrmcommon: add pcmk_result_type enum
  • libcrmcommon: add PCMK_XE_DATE_EXPRESSION constant
  • libcrmcommon: add PCMK_XE_OP_EXPRESSION constant
  • libcrmcommon: add PCMK_XE_RSC_EXPRESSION constant
  • libcrmcommon: first argument to crm_time_as_string() is now const
  • libcrmcommon: crm_time_t argument to crm_time_log_alias() is now const
  • libcrmcommon: argument to crm_time_get_seconds() is now const
  • libcrmcommon: argument to crm_time_get_seconds_since_epoch() is now const
  • libcrmcommon: sixth argument to log_data_element() is now const
  • libcrmcommon: source argument to crm_time_set() is now const
  • libcrmcommon: source argument to crm_time_set_timet() is now const
  • libcrmcommon: source argument to pcmk_copy_time() is now const
  • libpacemaker: add pcmk_check_rule()
  • libpacemaker: add pcmk_check_rules()
  • libpacemaker: add pcmk_show_result_code()
  • libpacemaker: add pcmk_lis...
Read more