Skip to content

Pacemaker 2.1.3 - Final

Compare
Choose a tag to compare
@kgaillot kgaillot released this 01 Jun 23:34
· 7287 commits to 2.1 since this release

Release info

  • Fri Jun 03 2022 Ken Gaillot [email protected] Pacemaker-2.1.4-rc1
  • Changesets: 11
  • Diff: 8 files changed, 31 insertions(+), 11 deletions(-)

Known regressions introduced in this release

  • Asynchronous IPC clients can leak file descriptors (fixed in 2.1.8)
  • The scheduler can crash when logging an invalid utilization value (fixed in 2.1.8)
  • Resources that need to move because they were reordered in the CIB might not do so until the next natural transition (fixed in 2.1.5)
  • Fence devices cannot be registered if the local node is not in the CIB (fixed in 2.1.5)
  • crm_attribute --utilization incorrectly sets the value of node utilization attributes (fixed in 2.1.5)
  • crm_attribute --quiet outputs "(null)" instead of nothing if the requested attribute has no value (fixed in 2.1.5)
  • crm_mon can return a failure code if pacemaker is shutting down, which can cause resource failures with resource agents that run crm_mon in monitor or stop actions (fixed in 2.1.5)
  • crm_mon can leak memory when run in daemon mode (fixed in 2.1.5)
  • attrd_updater rejects (deprecated and unused) --quiet option (fixed in 2.1.5)
  • Fencing devices configured with target-by-attribute no longer work (fixed in 2.1.4)
  • When debug logging is enabled, the fencer can have a use-after-free memory error when processing self-fencing requests with topology (fixed in 2.1.4)
  • ocf:pacemaker:HealthSMART meta-data has a typo (fixed in 2.1.4)

Features added since Pacemaker-2.1.2

  • Internal failures of resource actions (such as an OCF agent not being found) are shown with a detailed exit reason in logs, crm_mon output, etc.
  • Support for CIB entries with type="ping" is deprecated (this was an undocumented means of defining a quorum-only node)
  • build: configure script supports experimental --enable-nls option to enable native language translations (currently only Chinese translations of certain help text are available)
  • rpm: crm_attribute is now part of the pacemaker-cli package instead of the pacemaker package
  • CIB: resources support allow-unhealthy-nodes meta-attribute to exempt the resource from bans due to node health checks (particularly useful for health monitoring resources themselves)
  • CIB: multiple-active cluster property can be set to "stop_unexpected" to leave the expected instance running and stop only any unexpected ones
  • CIB: bundles support resource utilization
  • pacemakerd: regularly check that subdaemons are active and accepting IPC connections so sbd can self-fence a node with a malfunctioning subdaemon
  • pacemaker-schedulerd: support --output-as/--output-to options including XML output with interactive options
  • tools: cibadmin --show-access option to show CIB colorized for ACLs
  • tools: crm_attribute supports standard --output-as/--output-to options
  • tools: crm_mon output indicates if a node's health is yellow or red
  • tools: for probes that failed because the service is not installed or locally configured, crm_mon displays the resource as stopped rather than failed
  • tools: crm_rule supports standard --output-as/--output-to options, allows passing multiple -r options, and is no longer experimental
  • tools: stonith_admin fencing commands display reasons for failures
  • resource agents: HealthSMART supports OCF 1.1 standard and new OCF_RESKEY_dampen and OCF_RESKEY_smartctl parameters

Fixes since Pacemaker-2.1.2

  • build: avoid circular library dependency (regression introduced in 2.1.0)
  • systemd: if pacemakerd exits immediately after starting, wait 1 second before trying to respawn, and allow 5 attempts
  • fencer: get fencing completion time correctly (regression introduced in 2.1.2)
  • fencer: avoid memory leak when broadcasting history differences (regression introduced in 2.1.0)
  • controller: correctly match "node down" events so remote nodes don't get fenced when connection is stopped (regression introduced in 2.1.2)
  • executor: avoid possible double free during notify operation (regression introduced in 2.1.1)
  • tools: get stonith_admin -T/--tag option working again (regression introduced in 2.0.3)
  • resources: use correct syntax in Stateful meta-data (regression introduced in 2.1.0)
  • corosync: repeat corosync_cfg_trackstart if first attempt fails
  • libcrmcommon: retry IPC requests after EAGAIN errors
  • executor,scheduler: treat "no secrets" fence results as a hard error
  • fencing: handle dynamic target query failures better
  • fencing: don't set stonith action to pending if fork fails
  • pacemakerd: avoid race condition when subdaemaon is checked while exiting
  • scheduler: avoid memory leak when displaying clones in certain conditions
  • scheduler: properly set data set flags when scheduling actions
  • tools: support command-line crm_attribute calls on Pacemaker remote nodes whose node name in the cluster differs from their local hostname
  • tools: prevent possible crm_resource crashes if multiple commands specified

Public API changes since Pacemaker-2.1.2

  • libcrmcommon: pcmk_ipc_api_t supports scheduler IPC
  • libpacemaker: add pcmk_status() (equivalent to crm_mon)
  • libcib: deprecate get_object_parent()
  • libcib: deprecate get_object_path()
  • libcib: deprecate get_object_root()
  • libcrmcommon: add pcmk_cib_parent_name_for()
  • libcrmcommon: add pcmk_cib_xpath_for()
  • libcrmcommon: add pcmk_find_cib_element()
  • libcrmcommon: deprecate crm_xml_add_boolean()
  • libpe_status: add pe_flag_check_config
  • libpe_status: add pe_node_shared_s:data_set
  • libpe_status: add pe_rsc_restarting flag
  • libpe_status: add pe_rsc_stop_unexpected flag
  • libpe_status: add recovery_stop_unexpected to enum rsc_recovery_type
  • libpe_status: deprecate node_ping
  • libpe_status: deprecate pe_order_stonith_stop
  • libpe_status: deprecate pe_rsc_starting and pe_rsc_stopping
  • libstonithd: add exit_reason member to stonith_history_t
  • libstonithd: deprecate stonith_t:call_timeout
  • libstonithd: stonith_api_del_notification() with NULL second argument removes all notifications