== Logging and status displays ==
* The textual strings used for certain exit status codes and execution status codes will change, so if you have any scripts parsing output for these, they may need updating (for example, capitalization will become more consistent)
== Cluster behavior ==
* If a location constraint has a rule using `score-attribute`, the constraint will be ignored for nodes where the specified attribute is unset or invalid (previously, the constraint would be used with a score of -INFINITY for unset and 0 for invalid).
* Previously, a rule `expression` with the empty string as `value` would never be treated as passing. Now, it passes when the corresponding node attribute is the empty string.
* Node expressions are now consistently ignored in rules for meta-attributes.
* A negative `migration-threshold`, which is invalid and was previously treated as 1, is now treated as the default (`INFINITY`).
* Failures of custom recurring actions are now ignored and not shown in status output.
== Daemon behavior ==
* The `pacemaker-fenced -c`/`--stand-alone-w-cpg` option has been dropped, and the `-s` / `--stand-alone` option //(deprecated in 2.1.5 and no longer deprecated)// now behaves like the dropped option.
* The Pacemaker Remote daemon will now default only to /etc/pacemaker/authkey for the authentication key location, and will no longer fall back to trying /etc/corosync/authkey if that is missing; also, if a user-specified key is unreadable, it will fail rather than trying the default location
* If the CIB is configured to allow remote management (`remote-clear-port` or `remote-tls-port`), the CIB manager now rejects all remote client connections if Pacemaker was built without PAM support. (Previously, it would accept all remote connections without authentication.)
== Resource agent behavior ==
* The cluster will no longer provide the `HA_mcp`, `HA_quorum_type`, `PCMK_mcp`, and `PCMK_quorum_type` environment variables when executing resource agents.
* Fence agents that do not advertise support for either `plug` or `port` will default to `pcmk_host_argument="none"`
* Node attributes will no longer be passed to fence agents as meta-attributes
== Alert agent behavior ==
* Alert environment variables will no longer be passed with a `CRM_notify_` prefix, only `CRM_alert_` //(deprecated since 1.1.15)//
== Tool behavior ==
* The `--text-fancy` command-line option has been dropped from all tools
* For tools that accept XML on the command line (such as `cibadmin -X/--xml-text`), the XML must be correctly formed. Previously, simple XML errors would be silently and automatically corrected. As an example, usage like `cibadmin -C -o nodes -X '<node id="node1" uname="node1">'` will now generate an error because the element is not properly closed with `/>`.
* `attrd_updater --query` without `--node` or `--all` will now query the local node only (previously, it would query the local node when called from a resource agent executed by the cluster and all nodes when called from the command line)
* `cibadmin`
** Support for the `-b/--no-bcast` and `-h/--host` options has been dropped
** `--md5-sum-versioned` no longer outputs "Versioned (...) digest: " to stderr.
* `crm_ticket` options that require the `--force` option will now exit with a status of 107 rather than 4 when `--force` is not given, for consistency with other tools
* `crm_mon` no longer supports the deprecated options `-h/--as-html`, `-s/--simple-status`, `-N/--disable-ncurses`, and `-w/--web-cgi`
* `crm_resource`
** `-D/--delete` now exits with success (0) instead of no-such-object (105) if resource doesn't exist, exits with usage error (64) instead of no-such-object (105) if `-t` argument is not given, and exits with invalid parameter (2) if given a specific clone instance
** `--option` now exits with a usage error (instead of being ignored) unless given with `--validate` and without `-r/--resource`
** `-T/--timeout` now exits with a usage error (instead of being ignored) if given an invalid value
** Support for the deprecated and undocumented `-x/--xml-file`, `-G/--get-property`, and `-S/--set-property` options has been dropped
* `crm_shadow`
** `-r/--reset` now requires `--force`
** File errors, which previously would always result in exit status 105 (no such object), now give a more specific exit status when appropriate
* `crm_simulate` output will now say `Assignment Scores` rather than `Allocation Scores`