diff --git a/ChangeLog b/ChangeLog index 74e74de9f5..0bd69d5994 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,2947 +1,3151 @@ +* Thu Apr 29 2021 Ken Gaillot Pacemaker-2.1.0-rc1 +- Changesets: 781 +- Diff: + 323 files changed, 21034 insertions(+), 12145 deletions(-) + +- Features added since Pacemaker-2.0.5 + + support for OCF Resource Agent API 1.1 standard + - allow Promoted and Unpromoted role names in CIB (in addition to Master + and Slave, which are deprecated), and use new role names in output, + logs, and constraints created by crm_resource --ban + - advertise 1.1 support to agents, and provide notify_promoted_* and + notify_unpromoted_* environment variables to agents with notify actions + - support "reloadable" parameter attribute and "reload-agent" action in + agents that advertise 1.1 support + - support 1.1 standard in ocf:pacemaker:Dummy, ocf:pacemaker:remote, and + ocf:pacemaker:Stateful resource agents + - add "promoted-only" (in addition to "master-only", which is deprecated) + in crm_mon XML output for bans + + support for noncritical resources + - colocation constraints accept an "influence" attribute that determines + whether dependent influences main resource's location (the default of + "true" preserves the previous behavior, while "false" makes the + dependent stop if it reaches its migration-threshold in failures rather + than cause both resources to move to another node) + - resources accept a "critical" meta-attribute that serves as default for + all colocation constraints involving the resource as the dependent, as + well as groups involving the resource + + detail log uses millisecond-resolution timestamps when Pacemaker is built + with libqb 2.0 or later + + CIB: deprecate the remove-after-stop cluster property, can_fail action + meta-attribute, and support for Upstart-based resources + + controller: the PCMK_panic_action environment variable may be set to + sync-crash or sync-reboot to attempt to synchronize local + disks before crashing or rebooting, which can be helpful to + record cached log messages but runs the risk of the sync + hanging and leaving the host running after a critical error + + tools: CIB_file="-" can be used to get the CIB from standard input + + tools: crmadmin, crm_resource, crm_simulate, and crm_verify support + standard --output-as/--output-to options (including XML output, + intended for parsing by scripts and higher-level tools) + + tools: crm_attribute accepts -p/--promotion option to operate on + promotion score (replacing crm_master, which is deprecated) + + tools: crm_resource accepts --promoted option (replacing --master, which + is deprecated) + + tools: crm_resource accepts --digests advanced option + + tools: crm_simulate accepts --show-attrs and --show-failcounts options + +- Build process changes since Pacemaker-2.0.5 + + Pacemaker requires newer versions of certain dependencies, including + Python 3.2 or later (support for Python 2 has been dropped), glib 2.32.0 + or later, libqb 0.17.0 or later, GnuTLS 2.12.0 or later (to enable + Pacemaker Remote support), rpm 4.11.0 (if building RPMs), and a C library + that provides setenv() and unsetenv() + + configure: --enable-legacy-links (which is deprecated) defaults to "no", + meaning that symbolic links will not be created for the + Pacemaker 1 daemon names + + configure: --enable-compat-2.0 prevents certain output changes (most + significantly role names) to maintain compatibility with older + tools, scripts, and resource agents that rely on previous output + + configure: --with-resource-stickiness-default sets a resource-stickiness + default in newly created CIBs + + configure: --with-concurrent-fencing-default specifies default for + concurrent-fencing cluster property + + configure: --with-gnutls="no" explicitly disables support for + Pacemaker Remote and the remote-tls-port cluster property + + configure: --with-acl has been removed (support for ACLs is always built) + + configure: deprecated --with-pkgname, --with-pkg-name, --with-brand, + --enable-ansi, and --enable-no-stack options have been removed + + environment variables file (typically /etc/sysconfig/pacemaker or + /etc/default/pacemaker) will be installed when "make install" is run + + documentation has dependency on python3-sphinx instead of publican, and is + generated beneath doc/sphinx + +- Fixes since Pacemaker-2.0.5 + + controller: always refresh agent meta-data after start, in case agent was + updated (regression introduced in 1.1.18) + + tools: avoid crash when running crm_mon in daemonized mode with CGI output + (regression introduced in 2.0.3) + + tools: correctly treat unspecified node as all nodes instead of local node + when attrd_updater --query or crm_resource --cleanup is run on a + Pacemaker Remote node (regressions introduced in 1.1.14 and 1.1.17) + + pacemaker-attrd: avoid race condition where transient attributes for a + leaving node could be reinstated when the node rejoins, + potentially causing a node that was just rebooted to exit + the cluster immediately after rejoining + + controller,scheduler: fix year 2038 issues affecting shutdowns, + remote node fencing, last-rc-change, and + ticket last-granted dates + + controller: retry scheduler connection after failure, to avoid cluster + stopping on a node without stopping resources (clbz#5445) + + fencing: avoid pending fencing entry getting "stuck" in history if + originating node was unreachable when result was received + + fencing: retry getting agent meta-data if initial attempt fails + + fencing: detect when devices have been removed from configuration + + scheduler: constrain clone-min, clone-max, clone-node-max, promoted-max, + and promoted-node-max options to non-negative values + + scheduler: constrain resource priorities and node-health-base to score range + + scheduler: treat invalid duration fields in time-based rules as 0, not -1 + + scheduler: node attribute rule expressions with a value-source of "param" + or "meta" work when rsc or rsc-pattern with an inverted match + is given, as well as when rsc-pattern with a regular + match is given + + scheduler: node attribute rule expressions with a value-source of "param" + work with a resource parameter that itself is determined by a + node attribute rule expression + + scheduler: avoid remote connection shutdown hanging when connection + history for node hosting connection is not last in CIB status + + scheduler: route monitor cancellations behind moving remote connections correctly + + libcrmcommon: avoid potential integer overflow when adding seconds to times + + tools: cibsecret syncs to remote nodes and guest nodes as well as + cluster nodes + + tools: show other available cluster information in crm_mon even if + fence history is not available + + tools: retry failed fencer and CIB connections in crm_mon + + tools: crm_mon reports if Pacemaker is waiting for sbd at start-up + + tools: respect rules when showing node attributes in crm_mon + + tools: improve messages when crm_mon is run on disconnected remote node + + tools: constrain node IDs to non-negative values for crm_node -N + + tools: crm_node -l on restarted node works even when Corosync 2 is used + without node names specified in Corosync configuration + + tools: fix issues in calculation of non-sensitive resource parameter + digests that made crm_simulate wrongly think configuration changed + +- C API changes since Pacemaker-2.0.5 + + all: new PCMK_ALLOW_DEPRECATED constant controls API availability + + libcrmcluster: deprecate crm_terminate_member() + + libcrmcluster: deprecate crm_terminate_member_no_mainloop() + + libcrmcommon: add CRMD_ACTION_RELOAD_AGENT string constant + + libcrmcommon: add PCMK_OCF_MAJOR_VERSION string constant + + libcrmcommon: add PCMK_OCF_MINOR_VERSION string constant + + libcrmcommon: add PCMK_OCF_RUNNING_PROMOTED enum value + + libcrmcommon: add PCMK_OCF_VERSION string constant + + libcrmcommon: add PCMK_XE_PROMOTABLE_LEGACY string constant + + libcrmcommon: add PCMK_XE_PROMOTED_MAX_LEGACY string constant + + libcrmcommon: add PCMK_XE_PROMOTED_NODE_MAX_LEGACY string constant + + libcrmcommon: add enum ocf_exitcode (moved from libcrmservice) + + libcrmcommon: deprecate __builtin_expect() + + libcrmcommon: deprecate __likely() + + libcrmcommon: deprecate __unlikely() + + libcrmcommon: deprecate crm_atoi() + + libcrmcommon: deprecate crm_build_path() + + libcrmcommon: deprecate crm_config_error global variable + + libcrmcommon: deprecate crm_config_warning global variable + + libcrmcommon: deprecate crm_ftoa() + + libcrmcommon: deprecate crm_hash_table_size() + + libcrmcommon: deprecate crm_itoa() + + libcrmcommon: deprecate crm_itoa_stack() + + libcrmcommon: deprecate crm_log_cli_init() + + libcrmcommon: deprecate crm_parse_int() + + libcrmcommon: deprecate crm_parse_ll() + + libcrmcommon: deprecate crm_str_hash() + + libcrmcommon: deprecate crm_str_table_dup() + + libcrmcommon: deprecate crm_str_table_new() + + libcrmcommon: deprecate crm_strcase_equal() + + libcrmcommon: deprecate crm_strcase_hash() + + libcrmcommon: deprecate crm_strcase_table_new() + + libcrmcommon: deprecate crm_strip_trailing_newline() + + libcrmcommon: deprecate crm_ttoa() + + libcrmcommon: deprecate EOS constant + + libcrmcommon: deprecate GListPtr type + + libcrmcommon: deprecate g_str_hash_traditional() + + libcrmcommon: deprecate MAX_IPC_DELAY constant + + libcrmcommon: deprecate pcmk_format_named_time() + + libcrmcommon: deprecate pcmk_format_nvpair() + + libcrmcommon: deprecate pcmk_numeric_strcasecmp() + + libcrmcommon: deprecate PCMK_OCF_DEGRADED_MASTER enum value + + libcrmcommon: deprecate PCMK_OCF_FAILED_MASTER enum value + + libcrmcommon: deprecate PCMK_OCF_RUNNING_MASTER enum value + + libcrmcommon: deprecate pcmk_scan_nvpair() + + libcrmcommon: deprecate XML_CIB_TAG_MASTER string constant + + libcrmcommon: deprecate XML_RSC_ATTR_MASTER_MAX string constant + + libcrmcommon: deprecate XML_RSC_ATTR_MASTER_NODEMAX string constant + + libcrmservice: enum ocf_exitcode is obtained from libcrmcommon + + libpacemaker: add pcmk_controller_status() function + + libpacemaker: add pcmk_designated_controller() function + + libpacemaker: add pcmk_list_nodes() function + + libpacemaker: add pcmk_pacemakerd_status() function + + libpacemaker: add pcmk_resource_digests() function + + libpe_status: add parameter_cache member to pe_resource_t + + libpe_status: add pe_order_promoted_implies_first enum value + + libpe_status: add pe_rsc_params() + + libpe_status: add RSC_ROLE_PROMOTED enum value + + libpe_status: add RSC_ROLE_PROMOTED_LEGACY_S string constant + + libpe_status: add RSC_ROLE_PROMOTED_S string constant + + libpe_status: add RSC_ROLE_UNPROMOTED enum value + + libpe_status: add RSC_ROLE_UNPROMOTED_LEGACY_S string constant + + libpe_status: add RSC_ROLE_UNPROMOTED_S string constant + + libpe_status: add priv member to pcmk_working_set_t, for Pacemaker use only + + libpe_status: deprecate pe_order_implies_first_master enum value + + libpe_status: deprecate pe_print_details enum value + + libpe_status: deprecate pe_print_dev enum value + + libpe_status: deprecate pe_print_html enum value + + libpe_status: deprecate pe_print_log enum value + + libpe_status: deprecate pe_print_max_details enum value + + libpe_status: deprecate pe_print_ncurses enum value + + libpe_status: deprecate pe_print_xml enum value + + libpe_status: deprecate pe_resource_t parameters member + + libpe_status: deprecate RSC_ROLE_MASTER enum value + + libpe_status: deprecate RSC_ROLE_MASTER_S string constant + + libpe_status: deprecate RSC_ROLE_SLAVE enum value + + libpe_status: deprecate RSC_ROLE_SLAVE_S string constant + + libpe_status: ignore ->parameter() resource object function's create argument + * Wed Dec 02 2020 Chris Lumens Pacemaker-2.0.5 - Changesets: 534 - Diff: 286 files changed, 23133 insertions(+), 14626 deletions(-) - Features added since Pacemaker-2.0.4 + configuration: Add type="integer" to rule elements, allowing for specifying 64-bit integers and specifying double-precision floating point numbers when type="number". + daemons: Recognize new OCF agent status codes 190 (degraded) and 191 (degraded master) to be treated as success but displayed as errors. + sbd-integration: support SBD_SYNC_RESOURCE_STARTUP environment variable to better synchronize Pacemaker start-up and shutdown with SBD + scheduler: Add rule-based tests to op_defaults and rsc_defaults. + scheduler: Add on-fail=demote and no-quorum-policy=demote recovery policies for promoted resources. + tools: Add --resource= to filter crm_mon output for a resource. + tools: Add -P to crmadmin to show pacemakerd status. + tools: In cibsecret, read value to set from input (or stdin) if not specified. - Fixes for regressions introduced in Pacemaker-2.0.4 + tools: Add the node name back to bundle instances in crm_mon. + tools: get stonith_admin --list-targets working again - Fixes for regressions introduced in Pacemaker-2.0.3 + tools: Fix adding HTTP headers to crm_mon in daemon mode. + + tools: Show expected score of ping attributes in crm_mon XML output - Fixes for regressions introduced in Pacemaker-2.0.1 + scheduler: require pre-/post-start notifications correctly. - Changes since Pacemaker-2.0.4 + Prevent the bypassing of ACLs by direct IPC (CVE-2020-25654) + build: Fix a build issue on Fedora s390x. + build: Fix python2 vs. python3 packaging problems on openSUSE Tumbleweed + build: Update pkgconfig files for CI testing + controller: avoid recovery delay when shutdown locks expire + controller: Log correct timeout for timed-out stonith monitor + fencer: avoid infinite loop if device is removed during operation + fencer: avoid possible use-of-NULL when parsing metadata + libfencing: add `port` or `plug` parameter according to metadata on `validate` if no `pcmk_host_argument` specified + libfencing: respect `pcmk_host_argument=none` on `validate` + scheduler: disallow on-fail=stop for stop operations + scheduler: don't schedule a dangling migration stop if one already occurred + scheduler: don't select instance to be promoted on a guest that can't run + scheduler: fix build when DEFAULT_CONCURRENT_FENCING_TRUE is set + scheduler: Remove pe_print_expanded_xml print option. + scheduler: Use pcmk_monitor_timeout as stonith start timeout + tools: Add management status to crm_mon's group output. + tools: Add "No active resources" to one case in crm_mon output. + tools: Allow tags and alerts in cibadmin --scope + tools: Avoid crm_node on Pacemaker Remote nodes failing when other executor actions are occurring. + tools: Avoid pending fence actions getting stuck in crm_mon display + tools: "Connectivity is lost" may not be displayed even if the ping communication is lost. + tools: Display stop-all-resources in crm_mon's cluster options. + tools: don't use pssh -q option in cibsecret unless supported + tools: Fix adding the http-equiv header to crm_mon in daemon mode. + tools: If a clone or group is disabled, display that in crm_mon as part of the resource's header. + tools: crm_node -l and -p now work from Pacemaker Remote nodes + tools: Don't display crm_resource error messages twice. + tools: Print inactive resources by default with crm_mon xml output. + tools: properly detect local node name in cibsecret + tools: Revert some crm_resource string-related checks on variables that aren't strings. + tools: Use bash in cibsecret + xml: Mark new crm_mon attributes as optional in schema * Mon Jun 15 2020 Klaus Wenninger Pacemaker-2.0.4 - Changesets: 515 - Diff: 269 files changed, 22560 insertions(+), 13726 deletions(-) - Features added since Pacemaker-2.0.3 + build: Add support for glib-based unit tests. + controller: add new feature 'shutdown-locks' Optionally allow a gracefully shutdown node to have the resources locked to it for a configurable time. So that it can be restarted with exactly the same resources running as before. + controller/fencing/scheduler: add new feature 'priority-fencing-delay' Optionally derive the priority of a node from the resource-priorities of the resources it is running. In a fencing-race the node with the highest priority has a certain advantage over the others as fencing requests for that node are executed with an additional delay. controlled via cluster option priority-fencing-delay (default = 0) + stonith_admin: add --delay option (default = 0) to support enforced fencing delay + tools: Add --include= and --exclude= to crm_mon. + tools: Add --node= to filter crm_mon output for a node (or tag). + tools: Allow more fine grained filtering of fence-history in crm_mon. + tools: Allow crm_rule to check some date_specs. - Fixes for regressions introduced in Pacemaker-2.0.0 + tools: ensure that getting the local node name using crm_node always works from Pacemaker Remote node command line - Changes since Pacemaker-2.0.3 + build: improve checking headers for C++ fitness + build: restore build on latest OpenSUSE + fencing: Report an error getting history in output instead of empty history + fencing: Improve parameter handling for RHCS-style fence-agents - make parameter `action` shown as not required - add `port` or `plug` parameter according to metadata - `plug` parameter shown as non-required in the metadata + controller: clear leaving node's transient attributes even if there is no DC + controller: don't ack same request twice + iso8601: Fix crm_time_parse_offset() to parse offset with plus sign. + libcrmcommon, libpe: validate interval specs correctly + libcrmcommon: Add pcmk_str_is_infinity, pcmk_str_is_minus_infinity and pcmk__unregister_formats. + libcrmcommon: Extend what pcmk__split_range can do. + libfencing: Export formatted output functions. + libpe_status: Add node list arg to output messages preventing weird behavior + potential segfaults + libpe_status: Update the maint mode message for HTML output. + fencing, tools: Fix arguments to stonith-event. + scheduler: don't incorporate dependencies' colocations multiple times + scheduler: ensure attenuated scores still have some effect + scheduler: ignore colocation constraints with 0 score + scheduler: make sure cluster-wide maintenance-mode=true overrides per-resource settings + scheduler: properly detect whether guest node is fenceable + scheduler: do not differentiate case where all the nodes have equal priority + tests: Add tests for pe_cron_range_satisfied. + tests: Add tests for the current behavior of pcmk__split_range. + tools, lib: Use standard pacemaker return codes in crm_rule. + tools: Correct stonith-event arguments in crm_mon. + tools: Fix man pages for crm_mon & crm_diff. + tools: Make crm_mon --interval understand more formats. + tools: Fix --html-title= in crm_mon. + tools: Print errors to stderr for crm_mon's legacy xml. + tools: use return codes consistently in stonith_admin + tools: Use glib for cmdline handling in crm_diff, crm_simulate & crm_error + xml: Add a new version of the tags schema. + based: populate cib_nodes when 'cibadmin -R -scope=configuration' + cibsecret: don't use pssh -q option unless supported + fencing: avoid infinite loop if device is removed during operation + fencing: avoid possible use-of-NULL when parsing metadata + fencing: Remove dangling 'pending' for completed DC fencing. (CLBZ#5401) * Mon Nov 25 2019 Ken Gaillot Pacemaker-2.0.3 - Changesets: 601 - Diff: 227 files changed, 17862 insertions(+), 10471 deletions(-) - Features added since Pacemaker-2.0.2 + controller: new 'fence-reaction' cluster option specifies whether local node should 'stop' or 'panic' if notified of own fencing + controller: more cluster properties support ISO 8601 time specifications + controller: calculate cluster recheck interval dynamically when possible + Pacemaker Remote: allow file for environment variables when used in bundle + Pacemaker Remote: allow configurable listen address and TLS priorities + tools: crm_mon now supports standard --output-as/--output-to options + tools: crm_mon HTML output supports user-defined CSS stylesheet + tools: stonith_admin supports HTML output in addition to text and XML + tools: crm_simulate supports --repeat option to repeat profiling tests + tools: new pcmk_simtimes tool compares crm_simulate profiling output + agents: SysInfo supports K, T, and P units in addition to Kb and G - Changes since Pacemaker-2.0.2 + fencer: do not block concurrent fencing actions on a device (regression since 2.0.2) + all: avoid Year 2038 issues + all: allow ISO 8601 strings of form "T