"Fossies" - the Fresh Open Source Software Archive

Member "pacemaker-Pacemaker-2.1.0/ChangeLog" (8 Jun 2021, 212867 Bytes) of package /linux/misc/pacemaker-Pacemaker-2.1.0.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "ChangeLog": 2.1.0-rc2_vs_2.1.0-rc3.

    1 * Tue Jun 08 2021 Ken Gaillot <kgaillot@redhat.com> Pacemaker-2.1.0
    2 - Changesets: 849
    3 - Diff:
    4  327 files changed, 22089 insertions(+), 12633 deletions(-)
    5 
    6 - Features added since Pacemaker-2.0.5
    7   + support for OCF Resource Agent API 1.1 standard
    8     - allow Promoted and Unpromoted role names in CIB (in addition to Master
    9       and Slave, which are deprecated), and use new role names in output,
   10       logs, and constraints created by crm_resource --ban
   11     - advertise 1.1 support to agents, and provide notify_promoted_* and
   12       notify_unpromoted_* environment variables to agents with notify actions
   13     - support "reloadable" parameter attribute and "reload-agent" action in
   14       agents that advertise 1.1 support
   15     - support 1.1 standard in ocf:pacemaker:Dummy, ocf:pacemaker:remote, and
   16       ocf:pacemaker:Stateful resource agents
   17     - add "promoted-only" (in addition to "master-only", which is deprecated)
   18       in crm_mon XML output for bans
   19   + support for noncritical resources
   20     - colocation constraints accept an "influence" attribute that determines
   21       whether dependent influences main resource's location (the default of
   22       "true" preserves the previous behavior, while "false" makes the
   23       dependent stop if it reaches its migration-threshold in failures rather
   24       than cause both resources to move to another node)
   25     - resources accept a "critical" meta-attribute that serves as default for
   26       all colocation constraints involving the resource as the dependent, as
   27       well as groups involving the resource
   28   + detail log uses millisecond-resolution timestamps when Pacemaker is built
   29     with libqb 2.0 or later
   30   + CIB: deprecate the remove-after-stop cluster property, can_fail action
   31          meta-attribute, and support for Upstart-based resources
   32   + controller: the PCMK_panic_action environment variable may be set to
   33                 sync-crash or sync-reboot to attempt to synchronize local
   34                 disks before crashing or rebooting, which can be helpful to
   35                 record cached log messages but runs the risk of the sync
   36                 hanging and leaving the host running after a critical error
   37   + tools: CIB_file="-" can be used to get the CIB from standard input
   38   + tools: crmadmin, crm_resource, crm_simulate, and crm_verify support
   39            standard --output-as/--output-to options (including XML output,
   40            intended for parsing by scripts and higher-level tools)
   41   + tools: crm_attribute accepts -p/--promotion option to operate on
   42            promotion score (replacing crm_master, which is deprecated)
   43   + tools: crm_resource accepts --promoted option (replacing --master, which
   44            is deprecated)
   45   + tools: crm_resource accepts --digests advanced option
   46   + tools: crm_simulate accepts --show-attrs and --show-failcounts options
   47 
   48 - Build process changes since Pacemaker-2.0.5
   49   + Pacemaker requires newer versions of certain dependencies, including
   50     Python 3.2 or later (support for Python 2 has been dropped), glib 2.32.0
   51     or later, libqb 0.17.0 or later, GnuTLS 2.12.0 or later (to enable
   52     Pacemaker Remote support), rpm 4.11.0 (if building RPMs), and a C library
   53     that provides setenv() and unsetenv()
   54   + configure: --enable-legacy-links (which is deprecated) defaults to "no",
   55                meaning that symbolic links will not be created for the
   56                Pacemaker 1 daemon names
   57   + configure: --enable-compat-2.0 prevents certain output changes (most
   58                significantly role names) to maintain compatibility with older
   59                tools, scripts, and resource agents that rely on previous output
   60   + configure: --with-resource-stickiness-default sets a resource-stickiness
   61                default in newly created CIBs
   62   + configure: --with-concurrent-fencing-default specifies default for
   63                concurrent-fencing cluster property
   64   + configure: --with-sbd-sync-default specifies default for syncing start-up with sbd
   65   + configure: --with-ocfrapath specifies resource agent directories to search
   66   + configure: --with-ocfrainstalldir specifies where to install ocf:pacemaker agents
   67   + configure: --with-gnutls="no" explicitly disables support for
   68                Pacemaker Remote and the remote-tls-port cluster property
   69   + configure: --with-acl has been removed (support for ACLs is always built)
   70   + configure: deprecated --with-pkgname, --with-pkg-name, --with-brand,
   71                --enable-ansi, and --enable-no-stack options have been removed
   72   + environment variables file (typically /etc/sysconfig/pacemaker or
   73     /etc/default/pacemaker) will be installed when "make install" is run
   74   + documentation has dependency on python3-sphinx instead of publican, and is
   75     generated beneath doc/sphinx
   76 
   77 - Fixes since Pacemaker-2.0.5
   78   + controller: always refresh agent meta-data after start, in case agent was
   79                 updated (regression introduced in 1.1.18)
   80   + tools: avoid crash when running crm_mon in daemonized mode with CGI output
   81            (regression introduced in 2.0.3)
   82   + tools: correctly treat unspecified node as all nodes instead of local node
   83            when attrd_updater --query or crm_resource --cleanup is run on a
   84            Pacemaker Remote node (regressions introduced in 1.1.14 and 1.1.17)
   85   + pacemaker-attrd: avoid race condition where transient attributes for a
   86                      leaving node could be reinstated when the node rejoins,
   87                      potentially causing a node that was just rebooted to exit
   88                      the cluster immediately after rejoining
   89   + controller,scheduler: fix year 2038 issues affecting shutdowns,
   90                           remote node fencing, last-rc-change, and
   91                           ticket last-granted dates
   92   + controller: retry scheduler connection after failure, to avoid cluster
   93                 stopping on a node without stopping resources (clbz#5445)
   94   + fencing: avoid pending fencing entry getting "stuck" in history if
   95              originating node was unreachable when result was received
   96   + fencing: retry getting agent meta-data if initial attempt fails
   97   + fencing: detect when devices have been removed from configuration
   98   + scheduler: constrain clone-min, clone-max, clone-node-max, promoted-max,
   99                and promoted-node-max options to non-negative values
  100   + scheduler: constrain resource priorities and node-health-base to score range
  101   + scheduler: treat invalid duration fields in time-based rules as 0, not -1
  102   + scheduler: node attribute rule expressions with a value-source of "param"
  103                or "meta" work when rsc or rsc-pattern with an inverted match
  104                is given, as well as when rsc-pattern with a regular
  105                match is given
  106   + scheduler: node attribute rule expressions with a value-source of "param"
  107                work with a resource parameter that itself is determined by a
  108                node attribute rule expression
  109   + scheduler: avoid remote connection shutdown hanging when connection
  110                history for node hosting connection is not last in CIB status
  111   + scheduler: route monitor cancellations behind moving remote connections correctly
  112   + libcrmcommon: avoid potential integer overflow when adding seconds to times
  113   + tools: cibsecret syncs to remote nodes and guest nodes as well as
  114            cluster nodes
  115   + tools: show other available cluster information in crm_mon even if
  116            fence history is not available
  117   + tools: retry failed fencer and CIB connections in crm_mon
  118   + tools: crm_mon reports if Pacemaker is waiting for sbd at start-up
  119   + tools: respect rules when showing node attributes in crm_mon
  120   + tools: improve messages when crm_mon is run on disconnected remote node
  121   + tools: constrain node IDs to non-negative values for crm_node -N
  122   + tools: crm_node -l on restarted node works even when Corosync 2 is used
  123            without node names specified in Corosync configuration
  124   + tools: fix issues in calculation of non-sensitive resource parameter
  125            digests that made crm_simulate wrongly think configuration changed
  126 
  127 - C API changes since Pacemaker-2.0.5
  128   + all: new PCMK_ALLOW_DEPRECATED constant controls API availability
  129   + libcrmcluster: deprecate crm_terminate_member()
  130   + libcrmcluster: deprecate crm_terminate_member_no_mainloop()
  131   + libcrmcommon: add CRMD_ACTION_RELOAD_AGENT string constant
  132   + libcrmcommon: add PCMK_OCF_MAJOR_VERSION string constant
  133   + libcrmcommon: add PCMK_OCF_MINOR_VERSION string constant
  134   + libcrmcommon: add PCMK_OCF_RUNNING_PROMOTED enum value
  135   + libcrmcommon: add PCMK_OCF_VERSION string constant
  136   + libcrmcommon: add PCMK_XE_PROMOTABLE_LEGACY string constant
  137   + libcrmcommon: add PCMK_XE_PROMOTED_MAX_LEGACY string constant
  138   + libcrmcommon: add PCMK_XE_PROMOTED_NODE_MAX_LEGACY string constant
  139   + libcrmcommon: add enum ocf_exitcode (moved from libcrmservice)
  140   + libcrmcommon: deprecate __builtin_expect()
  141   + libcrmcommon: deprecate __likely()
  142   + libcrmcommon: deprecate __unlikely()
  143   + libcrmcommon: deprecate crm_atoi()
  144   + libcrmcommon: deprecate crm_build_path()
  145   + libcrmcommon: deprecate crm_config_error global variable
  146   + libcrmcommon: deprecate crm_config_warning global variable
  147   + libcrmcommon: deprecate crm_ftoa()
  148   + libcrmcommon: deprecate crm_hash_table_size()
  149   + libcrmcommon: deprecate crm_itoa()
  150   + libcrmcommon: deprecate crm_itoa_stack()
  151   + libcrmcommon: deprecate crm_log_cli_init()
  152   + libcrmcommon: deprecate crm_parse_int()
  153   + libcrmcommon: deprecate crm_parse_ll()
  154   + libcrmcommon: deprecate crm_str_hash()
  155   + libcrmcommon: deprecate crm_str_table_dup()
  156   + libcrmcommon: deprecate crm_str_table_new()
  157   + libcrmcommon: deprecate crm_strcase_equal()
  158   + libcrmcommon: deprecate crm_strcase_hash()
  159   + libcrmcommon: deprecate crm_strcase_table_new()
  160   + libcrmcommon: deprecate crm_strip_trailing_newline()
  161   + libcrmcommon: deprecate crm_ttoa()
  162   + libcrmcommon: deprecate EOS constant
  163   + libcrmcommon: deprecate GListPtr type
  164   + libcrmcommon: deprecate g_str_hash_traditional()
  165   + libcrmcommon: deprecate MAX_IPC_DELAY constant
  166   + libcrmcommon: deprecate pcmk_format_named_time()
  167   + libcrmcommon: deprecate pcmk_format_nvpair()
  168   + libcrmcommon: deprecate pcmk_numeric_strcasecmp()
  169   + libcrmcommon: deprecate PCMK_OCF_DEGRADED_MASTER enum value
  170   + libcrmcommon: deprecate PCMK_OCF_FAILED_MASTER enum value
  171   + libcrmcommon: deprecate PCMK_OCF_RUNNING_MASTER enum value
  172   + libcrmcommon: deprecate pcmk_scan_nvpair()
  173   + libcrmcommon: deprecate XML_CIB_TAG_MASTER string constant
  174   + libcrmcommon: deprecate XML_RSC_ATTR_MASTER_MAX string constant
  175   + libcrmcommon: deprecate XML_RSC_ATTR_MASTER_NODEMAX string constant
  176   + libcrmservice: enum ocf_exitcode is obtained from libcrmcommon
  177   + libpacemaker: add pcmk_controller_status() function
  178   + libpacemaker: add pcmk_designated_controller() function
  179   + libpacemaker: add pcmk_list_nodes() function
  180   + libpacemaker: add pcmk_pacemakerd_status() function
  181   + libpacemaker: add pcmk_resource_digests() function
  182   + libpe_status: add parameter_cache member to pe_resource_t
  183   + libpe_status: add pe_order_promoted_implies_first enum value
  184   + libpe_status: add pe_rsc_params()
  185   + libpe_status: add RSC_ROLE_PROMOTED enum value
  186   + libpe_status: add RSC_ROLE_PROMOTED_LEGACY_S string constant
  187   + libpe_status: add RSC_ROLE_PROMOTED_S string constant
  188   + libpe_status: add RSC_ROLE_UNPROMOTED enum value
  189   + libpe_status: add RSC_ROLE_UNPROMOTED_LEGACY_S string constant
  190   + libpe_status: add RSC_ROLE_UNPROMOTED_S string constant
  191   + libpe_status: add priv member to pcmk_working_set_t, for Pacemaker use only
  192   + libpe_status: deprecate pe_order_implies_first_master enum value
  193   + libpe_status: deprecate pe_print_details enum value
  194   + libpe_status: deprecate pe_print_dev enum value
  195   + libpe_status: deprecate pe_print_html enum value
  196   + libpe_status: deprecate pe_print_log enum value
  197   + libpe_status: deprecate pe_print_max_details enum value
  198   + libpe_status: deprecate pe_print_ncurses enum value
  199   + libpe_status: deprecate pe_print_xml enum value
  200   + libpe_status: deprecate pe_resource_t parameters member
  201   + libpe_status: deprecate RSC_ROLE_MASTER enum value
  202   + libpe_status: deprecate RSC_ROLE_MASTER_S string constant
  203   + libpe_status: deprecate RSC_ROLE_SLAVE enum value
  204   + libpe_status: deprecate RSC_ROLE_SLAVE_S string constant
  205   + libpe_status: ignore ->parameter() resource object function's create argument
  206 
  207 * Wed Dec 02 2020 Chris Lumens <clumens@redhat.com> Pacemaker-2.0.5
  208 - Changesets: 534
  209 - Diff: 286 files changed, 23133 insertions(+), 14626 deletions(-)
  210 
  211 - Features added since Pacemaker-2.0.4
  212   + configuration: Add type="integer" to rule elements, allowing for
  213                    specifying 64-bit integers and specifying
  214                    double-precision floating point numbers when
  215                    type="number".
  216   + daemons: Recognize new OCF agent status codes 190 (degraded) and 191
  217              (degraded master) to be treated as success but displayed as
  218              errors.
  219   + sbd-integration: support SBD_SYNC_RESOURCE_STARTUP environment
  220                      variable to better synchronize Pacemaker start-up
  221                      and shutdown with SBD
  222   + scheduler: Add rule-based tests to op_defaults and rsc_defaults.
  223   + scheduler: Add on-fail=demote and no-quorum-policy=demote recovery
  224                policies for promoted resources.
  225   + tools: Add --resource= to filter crm_mon output for a resource.
  226   + tools: Add -P to crmadmin to show pacemakerd status.
  227   + tools: In cibsecret, read value to set from input (or stdin) if not specified.
  228 
  229 - Fixes for regressions introduced in Pacemaker-2.0.4
  230   + tools: Add the node name back to bundle instances in crm_mon.
  231   + tools: get stonith_admin --list-targets working again
  232 
  233 - Fixes for regressions introduced in Pacemaker-2.0.3
  234   + tools: Fix adding HTTP headers to crm_mon in daemon mode.
  235   + tools: Show expected score of ping attributes in crm_mon XML output
  236 
  237 - Fixes for regressions introduced in Pacemaker-2.0.1
  238   + scheduler: require pre-/post-start notifications correctly.
  239 
  240 - Changes since Pacemaker-2.0.4
  241   + Prevent the bypassing of ACLs by direct IPC (CVE-2020-25654)
  242   + build: Fix a build issue on Fedora s390x.
  243   + build: Fix python2 vs. python3 packaging problems on openSUSE Tumbleweed
  244   + build: Update pkgconfig files for CI testing
  245   + controller: avoid recovery delay when shutdown locks expire
  246   + controller: Log correct timeout for timed-out stonith monitor
  247   + fencer: avoid infinite loop if device is removed during operation
  248   + fencer: avoid possible use-of-NULL when parsing metadata
  249   + libfencing: add `port` or `plug` parameter according to metadata on
  250                 `validate` if no `pcmk_host_argument` specified
  251   + libfencing: respect `pcmk_host_argument=none` on `validate`
  252   + scheduler: disallow on-fail=stop for stop operations
  253   + scheduler: don't schedule a dangling migration stop if one already occurred
  254   + scheduler: don't select instance to be promoted on a guest that can't run
  255   + scheduler: fix build when DEFAULT_CONCURRENT_FENCING_TRUE is set
  256   + scheduler: Remove pe_print_expanded_xml print option.
  257   + scheduler: Use pcmk_monitor_timeout as stonith start timeout
  258   + tools: Add management status to crm_mon's group output.
  259   + tools: Add "No active resources" to one case in crm_mon output.
  260   + tools: Allow tags and alerts in cibadmin --scope
  261   + tools: Avoid crm_node on Pacemaker Remote nodes failing when other
  262            executor actions are occurring.
  263   + tools: Avoid pending fence actions getting stuck in crm_mon display
  264   + tools: "Connectivity is lost" may not be displayed even if the ping
  265            communication is lost.
  266   + tools: Display stop-all-resources in crm_mon's cluster options.
  267   + tools: don't use pssh -q option in cibsecret unless supported
  268   + tools: Fix adding the http-equiv header to crm_mon in daemon mode.
  269   + tools: If a clone or group is disabled, display that in crm_mon as part
  270            of the resource's header.
  271   + tools: crm_node -l and -p now work from Pacemaker Remote nodes
  272   + tools: Don't display crm_resource error messages twice.
  273   + tools: Print inactive resources by default with crm_mon xml output.
  274   + tools: properly detect local node name in cibsecret
  275   + tools: Revert some crm_resource string-related checks on variables
  276            that aren't strings.
  277   + tools: Use bash in cibsecret
  278   + xml: Mark new crm_mon attributes as optional in schema
  279 
  280 * Mon Jun 15 2020 Klaus Wenninger <klaus.wenninger@aon.at> Pacemaker-2.0.4
  281 - Changesets: 515
  282 - Diff: 269 files changed, 22560 insertions(+), 13726 deletions(-)
  283 
  284 - Features added since Pacemaker-2.0.3
  285   + build: Add support for glib-based unit tests.
  286   + controller: add new feature 'shutdown-locks'
  287         Optionally allow a gracefully shutdown node to have the resources
  288         locked to it for a configurable time.
  289         So that it can be restarted with exactly the same resources
  290         running as before.
  291   + controller/fencing/scheduler: add new feature 'priority-fencing-delay'
  292         Optionally derive the priority of a node from the resource-priorities
  293         of the resources it is running.
  294         In a fencing-race the node with the highest priority has a certain
  295         advantage over the others as fencing requests for that node are
  296         executed with an additional delay.
  297         controlled via cluster option priority-fencing-delay (default = 0)
  298   + stonith_admin: add --delay option (default = 0) to support enforced
  299                    fencing delay
  300   + tools: Add --include= and --exclude= to crm_mon.
  301   + tools: Add --node= to filter crm_mon output for a node (or tag).
  302   + tools: Allow more fine grained filtering of fence-history in crm_mon.
  303   + tools: Allow crm_rule to check some date_specs.
  304 
  305 - Fixes for regressions introduced in Pacemaker-2.0.0
  306   + tools: ensure that getting the local node name using crm_node
  307            always works from Pacemaker Remote node command line
  308 
  309 - Changes since Pacemaker-2.0.3
  310   + build: improve checking headers for C++ fitness
  311   + build: restore build on latest OpenSUSE
  312   + fencing: Report an error getting history in output instead of empty history
  313   + fencing: Improve parameter handling for RHCS-style fence-agents
  314                  - make parameter `action` shown as not required
  315                  - add `port` or `plug` parameter according to metadata
  316                  - `plug` parameter shown as non-required in the metadata
  317   + controller: clear leaving node's transient attributes even if there is no DC
  318   + controller: don't ack same request twice
  319   + iso8601: Fix crm_time_parse_offset() to parse offset with plus sign.
  320   + libcrmcommon, libpe: validate interval specs correctly
  321   + libcrmcommon: Add pcmk_str_is_infinity, pcmk_str_is_minus_infinity and
  322                   pcmk__unregister_formats.
  323   + libcrmcommon: Extend what pcmk__split_range can do.
  324   + libfencing: Export formatted output functions.
  325   + libpe_status: Add node list arg to output messages preventing weird
  326                   behavior + potential segfaults
  327   + libpe_status: Update the maint mode message for HTML output.
  328   + fencing, tools: Fix arguments to stonith-event.
  329   + scheduler: don't incorporate dependencies' colocations multiple times
  330   + scheduler: ensure attenuated scores still have some effect
  331   + scheduler: ignore colocation constraints with 0 score
  332   + scheduler: make sure cluster-wide maintenance-mode=true overrides
  333                per-resource settings
  334   + scheduler: properly detect whether guest node is fenceable
  335   + scheduler: do not differentiate case where all the nodes have equal priority
  336   + tests: Add tests for pe_cron_range_satisfied.
  337   + tests: Add tests for the current behavior of pcmk__split_range.
  338   + tools, lib: Use standard pacemaker return codes in crm_rule.
  339   + tools: Correct stonith-event arguments in crm_mon.
  340   + tools: Fix man pages for crm_mon & crm_diff.
  341   + tools: Make crm_mon --interval understand more formats.
  342   + tools: Fix --html-title= in crm_mon.
  343   + tools: Print errors to stderr for crm_mon's legacy xml.
  344   + tools: use return codes consistently in stonith_admin
  345   + tools: Use glib for cmdline handling in crm_diff, crm_simulate & crm_error
  346   + xml: Add a new version of the tags schema.
  347   + based: populate cib_nodes when 'cibadmin -R -scope=configuration'
  348   + cibsecret: don't use pssh -q option unless supported
  349   + fencing: avoid infinite loop if device is removed during operation
  350   + fencing: avoid possible use-of-NULL when parsing metadata
  351   + fencing: Remove dangling 'pending' for completed DC fencing. (CLBZ#5401)
  352 
  353 * Mon Nov 25 2019 Ken Gaillot <kgaillot@redhat.com> Pacemaker-2.0.3
  354 - Changesets: 601
  355 - Diff: 227 files changed, 17862 insertions(+), 10471 deletions(-)
  356 
  357 - Features added since Pacemaker-2.0.2
  358   + controller: new 'fence-reaction' cluster option specifies whether local node
  359                 should 'stop' or 'panic' if notified of own fencing
  360   + controller: more cluster properties support ISO 8601 time specifications
  361   + controller: calculate cluster recheck interval dynamically when possible
  362   + Pacemaker Remote: allow file for environment variables when used in bundle
  363   + Pacemaker Remote: allow configurable listen address and TLS priorities
  364   + tools: crm_mon now supports standard --output-as/--output-to options
  365   + tools: crm_mon HTML output supports user-defined CSS stylesheet
  366   + tools: stonith_admin supports HTML output in addition to text and XML
  367   + tools: crm_simulate supports --repeat option to repeat profiling tests
  368   + tools: new pcmk_simtimes tool compares crm_simulate profiling output
  369   + agents: SysInfo supports K, T, and P units in addition to Kb and G
  370 
  371 - Changes since Pacemaker-2.0.2
  372   + fencer: do not block concurrent fencing actions on a device
  373             (regression since 2.0.2)
  374   + all: avoid Year 2038 issues
  375   + all: allow ISO 8601 strings of form "<date>T<time> <offset>"
  376   + rpm: pacemaker-cts package now explicitly requires pacemaker-cli
  377   + controller: set timeout on scheduler responses to avoid infinite wait
  378   + controller: confirm cancel of failed monitors, to avoid transition timeout
  379   + executor: let controller cancel monitors, to avoid transition timeout
  380   + executor: return error for stonith probes if stonith connection was lost
  381   + fencer: ensure concurrent fencing commands always get triggered to execute
  382   + fencer: fail pending actions and re-sync history after crash and restart
  383   + fencer: don't let command with long delay block other pending commands
  384   + fencer: allow functioning even if CIB updates arrive unceasingly
  385   + scheduler: wait for probe actions to complete to prevent unnecessary
  386                restart/re-promote of dependent resources
  387   + scheduler: avoid invalid transition when guest node host is not fenceable
  388   + scheduler: properly detect dangling migrations, to avoid restart loop
  389   + scheduler: avoid scheduling actions on remote node that is shutting down
  390   + scheduler: avoid delay in recovery of failed remote connections
  391   + scheduler: clarify action failure log messages by including failure time
  392   + scheduler: calculate secure digests for unfencing, for replaying saved CIBs
  393   + libcrmcommon: avoid possible use-of-NULL when applying XML diffs
  394   + libcrmcommon: correctly apply XML diffs with multiple move/create changes
  395   + libcrmcommon: return error when applying XML diffs with unknown operations
  396   + tools: avoid duplicate lines between nodes in crm_simulate dot graph
  397   + tools: count disabled/blocked resources correctly in crm_mon/crm_simulate
  398   + tools: crm_mon --interval now accepts ISO 8601 and has correct help
  399   + tools: organize crm_mon text output with list headings, indents, bullets
  400   + tools: crm_report: fail if tar is not available
  401   + tools: crm_report: correct argument parsing
  402   + tools: crm_report: don't ignore log if unrelated file is too large
  403   + tools: stonith_admin --list-targets should show what fencer would use
  404   + agents: calculate #health_disk correctly in SysInfo
  405   + agents: handle run-as-user properly in ClusterMon
  406 
  407 * Tue Jun 04 2019 Ken Gaillot <kgaillot@redhat.com> Pacemaker-2.0.2
  408 - Changesets: 288
  409 - Diff: 225 files changed, 28494 insertions(+), 24465 deletions(-)
  410 
  411 - Features added since Pacemaker-2.0.1
  412   + tools: crm_resource --validate can get resource parameters from command line
  413   + tools: crm_resource --clear prints out any cleared constraints
  414   + tools: new crm_rule tool for checking rule expiration (experimental)
  415   + tools: stonith_admin supports XML output for machine parsing (experimental)
  416   + resources: new HealthIOWait resource agent for node health tracking
  417 
  418 - Changes since Pacemaker-2.0.1
  419   + Important security fixes for CVE-2018-16878, CVE-2018-16877, CVE-2019-3885
  420   + build: crm_report bug report URL is now configurable at build time
  421   + build: private libpengine/libtransitioner libraries combined as libpacemaker
  422   + controller: avoid memory leak when duplicate monitor is scheduled
  423   + scheduler: respect order constraints when resources are being probed
  424   + scheduler: one group stop shouldn't make another required
  425   + libcrmcommon: handle out-of-range integers in configuration better
  426   + libcrmcommon: export logfile environment variable if using default
  427   + libcrmcommon: avoid segmentation fault when beginning formatted text list
  428   + libcrmservice: fix use-after-free memory error in alert handling
  429   + libstonithd: handle more than 64KB output from fence agents
  430 
  431 
  432 * Mon Mar 4 2019 Ken Gaillot <kgaillot@redhat.com> Pacemaker-2.0.1
  433 - Changesets: 592
  434 - Diff: 173 files changed, 9268 insertions(+), 5344 deletions(-)
  435 
  436 - Features added since Pacemaker-2.0.0
  437   + Pacemaker bundles support podman for container management
  438   + fencing: SBD may be used in a cluster that has guest nodes or bundles
  439   + fencing: fencing history is synchronized among all nodes
  440   + fencing: stonith_admin has option to clear fence history
  441   + tools: crm_mon can show fencing action failures and history
  442   + tools: crm_resource --clear supports new --expired option
  443   + Pacemaker Remote: new options to restrict TLS Diffie-Hellman prime length
  444 
  445 - Changes since Pacemaker-2.0.0
  446   + scheduler: clone notifications could be scheduled for a stopped
  447     Pacemaker Remote node and block all further cluster actions
  448     (regression since 2.0.0)
  449   + libcrmcommon: correct behavior for completing interrupted live migrations
  450     (regression since 2.0.0)
  451   + tools: crm_resource -C could fail to clean up all failures in one run
  452     (regression since 2.0.0)
  453   + Pacemaker Remote: avoid unnecessary downtime when moving resource to
  454     Pacemaker Remote node that fails to come up (regression since 1.1.18)
  455   + tools: restore stonith_admin ability to confirm unseen nodes are down
  456     (regression since 1.1.12)
  457   + build: minor logging fixes to allow compatibility with GCC 9 -Werror
  458   + build: spec file now puts XML schemas in new pacemaker-schemas package
  459   + build: spec file now provides virtual pcmk-cluster-manager package
  460   + pacemaker-attrd: wait a short time before re-attempting failed writes
  461   + pacemaker-attrd: ignore attribute delays when writing after node (re-)join
  462   + pacemaker-attrd: start new election immediately if writer is lost
  463   + pacemaker-attrd: clear election dampening when the writer leaves
  464   + pacemaker-attrd: detect alert configuration changes when CIB is replaced
  465   + CIB: inform originator of CIB upgrade failure
  466   + controller: support resource agents that require node name even for meta-data
  467   + controller: don't record pending clone notifications in CIB
  468   + controller: DC detects completion of another node's shutdown more accurately
  469   + controller: shut down DC if unable to update node attributes
  470   + controller: handle corosync peer/join notifications for new node in any order
  471   + controller: clear election dampening when DC is lost
  472   + executor: cancel recurring monitors if fence device registration is lost
  473   + fencing: check for fence device update when resource defaults change
  474   + fencing: avoid pacemaker-fenced crash possible with stonith_admin misuse
  475   + fencing: limit fencing history to 500 entries
  476   + fencing: stonith_admin now complains if no action option is specified
  477   + pacemakerd: do not modify kernel.sysrq on Linux
  478   + scheduler: regression test compatibility with glib 2.59.0
  479   + scheduler: avoid unnecessary recovery of cleaned guest nodes and bundles
  480   + scheduler: ensure failures causing fencing not expired until fencing done
  481   + scheduler: start unique clone instances in numerical order
  482   + scheduler: convert unique clones to anonymous clones when not supported
  483   + scheduler: associate pending tasks with correct clone instance
  484   + scheduler: ensure bundle clone notifications are directed to correct host
  485   + scheduler: avoid improper bundle monitor rescheduling or fail count clearing
  486   + scheduler: honor asymmetric orderings even when restarting
  487   + scheduler: don't order non-DC shutdowns before DC fencing
  488   + ACLs: assume unprivileged ACL user if can't get user info
  489   + Pacemaker Remote: get Diffie-Hellman prime bit length from GnuTLS API
  490   + libcrmservice: cancel DBus call when cancelling systemd/upstart actions
  491   + libcrmservice: order systemd resources relative to pacemaker_remote
  492   + libpe_status: add public API constructor/destructor for pe_working_set_t
  493   + tools: fix crm_resource --clear when lifetime was used with ban/move
  494   + tools: fix crm_resource --move when lifetime was used with previous move
  495   + tools: make crm_mon CIB connection errors non-fatal if previously successful
  496   + tools: improve crm_mon messages when generating HTML output
  497   + tools: crm_mon cluster connection failure is now "critical" in nagios mode
  498   + tools: crm_mon listing of standby nodes shows if they have active resources
  499   + tools: crm_diff now ignores attribute ordering when comparing in CIB mode
  500   + tools: improve crm_report detection of logs, CIB directory, and processes
  501   + tools: crm_verify returns reliable exit codes
  502   + tools: crm_simulate resource history uses same name as live cluster would
  503 
  504 
  505 * Fri Jul 6 2018 Ken Gaillot <kgaillot@redhat.com> Pacemaker-2.0.0
  506 - Changesets: 885
  507 - Diff:       549 files changed, 89865 insertions(+), 95100 deletions(-)
  508 
  509 - Deprecated features removed since Pacemaker-1.1.18
  510   + All of these have newer forms, and the cluster will automatically convert
  511     most older syntax usage in saved configurations to newer syntax as needed
  512   + Drop support for heartbeat and corosync 1 (whether using CMAN or plugin)
  513   + Drop support for rolling upgrades from Pacemaker versions older than 1.1.11
  514   + Drop support for built-in SMTP and SNMP in crm_mon
  515   + Drop support for legacy option aliases including default-action-timeout,
  516     default-resource-stickiness, resource-failure-stickiness,
  517     default-resource-failure-stickiness, is-managed-default,
  518     and all names using underbar instead of dash
  519   + Drop support for "requires" operation meta-attribute
  520   + Drop support for the pcmk_*_cmd, pcmk_arg_map, and pcmk_poweroff_action
  521     fence resource parameters
  522   + Drop support for deprecated command-line options to crmadmin,
  523     crm_attribute, crm_resource, crm_verify, crm_mon, and stonith_admin
  524   + Drop support for operation meta-attributes in instance_attributes
  525   + Drop support for PCMK_legacy and LRMD_MAX_CHILDREN environment variables
  526   + Drop support for undocumented resource isolation feature
  527   + Drop support for processing very old saved CIB files (including
  528     pre-0.6.0 start failure entries, pre-0.6.5 operation history entries,
  529     pre-0.7 transition keys, pre-1.1.4 migration history entries,
  530     pre-1.0 XML configuration schemas, pre-1.1.6 ticket state entries, and
  531     pre-1.1.7 failed recurring operation history entries)
  532 
  533 - Features added since Pacemaker-1.1.18
  534   + The pacemaker daemons have been renamed to make logs more intuitive
  535     and easier to search
  536   + The default location of the Pacemaker detail log is now
  537     /var/log/pacemaker/pacemaker.log (instead of being directly in /var/log),
  538     and Pacemaker will no longer use Corosync's logging preferences;
  539     configure script options are available to change default log locations
  540   + The detail log's message format has been improved
  541   + The master XML tag is deprecated in favor of using a standard clone tag
  542     with a new "promotable" meta-attribute set to true, and the "master-max"
  543     and "master-node-max" master meta-attributes are deprecated in favor of
  544     new "promoted-max" and "promoted-node-max" clone meta-attributes;
  545     documentation now refers to these as promotable clones rather than
  546     master/slave, stateful, or multistate clones, and refers to
  547     promotion scores instead of master scores
  548   + Administration-related documentation has been moved from the
  549     "Pacemaker Explained" document to a new "Pacemaker Administration" document
  550   + record-pending now defaults to TRUE (pending actions are shown in status)
  551   + All Python code in Pacemaker now supports both Python 2.7 and Python 3
  552   + The command-line tools now return consistent, well-defined exit codes;
  553     crm_error has an --exit option to list these
  554   + Pacemaker's systemd unit files now remove systemd's spawned process limit
  555   + mount, path, and timer systemd unit types are now supported as resources
  556   + A negative stonith-watchdog-timeout now tells the cluster to automatically
  557     calculate the value based on SBD_WATCHDOG_TIMEOUT (which was the behavior
  558     of 0 before 1.1.15; 0 retains its post-1.1.15 behavior of disabling use of
  559     the watchdog as a fencing device)
  560   + The undocumented restart-type and role_after_failure
  561     resource meta-attributes are now deprecated
  562   + Regression testing code has been consolidated and overhauled
  563     (the most obvious change is new command names)
  564   + build: create /etc/pacemaker directory when installing
  565   + build: improved portability to BSD-based platforms
  566   + tools: crm_resource --cleanup now cleans only failed operation history;
  567     crm_resource --reprobe retains the previous behavior of cleaning all
  568     operation history
  569   + tools: add stonith_admin --validate option to check device configuration
  570   + tools: crm_node is now in the pacemaker-cli package (instead of pacemaker)
  571   + alerts: add epoch and usec alert variables for improved SNMP alerts
  572   + controller: deprecate "crmd-*" cluster options in favor of new names
  573   + scheduler: deprecate stonith-action value "poweroff" (use "off" instead)
  574   + scheduler: deprecate require-all in rsc_order
  575   + libcrmcluster: prefer corosync name over ring0_addr
  576   + xml: allow local "kind" in resource_set within rsc_order
  577 
  578 - Changes since Pacemaker-1.1.18
  579   + Restore systemd unit dependency on DBus (regression in 1.1.17)
  580   + CIB: handle mixed-case node names when modifying attributes (regression in 1.1.17)
  581   + scheduler: avoid crash when logging ignored failure timeout (regression in 1.1.17)
  582   + attrd: ensure node name is broadcast at start-up (regression in 1.1.18)
  583   + scheduler: unfence before probing or starting fence devices (regression in 1.1.18)
  584   + tools: treat INFINITY correctly in crm_failcount (regression in 1.1.17)
  585   + tools: show master scores with crm_simulate -sL (regression in 1.1.18)
  586   + tools: crm_master did not work without explicit --lifetime (regression in 1.1.18)
  587   + Numerous changes to public C API of libraries
  588   + Choose current node correctly when a resource is multiply active
  589   + controller,executor,tools: avoid minor memory leaks
  590   + CIB: don't use empty CIB if real CIB has bad permissions
  591   + controller: avoid double free after ACL rejection of resource deletion
  592   + controller: don't record pending clone notifications in CIB
  593   + controller: always write faked failures to CIB whenever possible
  594   + controller: quorum gain without a node join should cause new transition
  595   + executor: handle systemd actions correctly when used with "service:"
  596   + executor: find absolute LSB paths when used with "service:"
  597   + scheduler: handle "requires" of "quorum" or "nothing" properly
  598   + scheduler: ensure orphaned recurring monitors have interval set
  599   + scheduler: handle pending migrations correctly when record-pending is true
  600   + scheduler: don't time out failures that cause fencing until fencing completes
  601   + scheduler: handle globally-unique bundle children correctly
  602   + scheduler: use correct default timeout for monitors
  603   + scheduler: "symmetrical" defaults to "false" for serialize orders
  604   + scheduler: avoid potential use-of-NULL when unpacking ordering constraint
  605   + scheduler: properly cancel recurring monitors
  606   + scheduler: do not schedule notifications for unrunnable actions
  607   + scheduler: ensure stops occur after stopped remote connections come back up
  608   + scheduler: consider only allowed nodes when ordering start after all recovery
  609   + scheduler: avoid graph loop from ordering bundle child stops/demotes after container fencing
  610   + scheduler: remote connection resources are safe to require only quorum
  611   + scheduler: correctly observe colocation with bundles in Master role
  612   + scheduler: restart resource after failed demote when appropriate
  613   + Pacemaker Remote: always use most recent remote proxy
  614   + tools: crm_node now gets correct node name and ID on Pacemaker Remote nodes
  615   + tools: correctly check crm_resource --move for master role
  616   + tools: cibsecret --help/--version doesn't require cluster to be running
  617   + tools: ignore attribute placement when crm_diff compares in cib mode
  618   + tools: prevent notify actions from causing crm_resource --wait to hang
  619   + resources: drop broken configdir parameter from ocf:pacemaker:controld
  620 
  621 - For further details, see:
  622   https://wiki.clusterlabs.org/wiki/Pacemaker_2.0_Changes
  623 
  624 
  625 * Tue Nov 14 2017 Ken Gaillot <kgaillot@redhat.com> Pacemaker-1.1.18
  626 - Update source tarball to revision: a9fbd15
  627 - Changesets: 644
  628 - Diff:       167 files changed, 9753 insertions(+), 5596 deletions(-)
  629 
  630 - Features added since Pacemaker-1.1.17
  631   + warnings are now logged when using legacy syntax to be removed in 2.0
  632   + agents: ifspeed agent is now installed when building
  633   + agents: ifspeed agent can optionally detect interface name from IP address
  634   + alerts: support alert filters
  635   + alerts: experimental support for alerts for node attribute changes
  636   + crmd,pengine: support unfencing of remote nodes
  637   + pengine: bundles now support all constraint types
  638   + pengine: bundles now support rkt containers
  639   + pengine: bundles support new container-attribute-target parameter
  640   + pengine,tools: logs and crm_mon show why resources changed state
  641   + stonith-ng: support new fencing resource parameter pcmk_delay_base
  642   + tools: new crm_resource option --why explains why resources are stopped
  643 
  644 - Changes since Pacemaker-1.1.17
  645   + many documentation improvements
  646   + agents: ifspeed properly calculates speed of hfi1 interfaces
  647   + agents: ClusterMon now interprets "update" less than 1000 as seconds
  648   + attrd: don't lose attributes set between attrd start-up and cluster join
  649   + attrd: fix multiple minor memory leaks
  650   + crmd: correctly record that unfencing is complete
  651   + crmd: error more quickly if remote start fails due to missing key
  652   + lrmd: remote resource operations return immediate error if key setup fails
  653   + lrmd: allow pre-1.1.15 cluster nodes to connect to current Pacemaker Remote
  654   + pengine: guest nodes are now probed like other nodes
  655   + pengine: probe remote nodes for guest node resources
  656   + pengine: do not probe guest/bundle connections until guest/bundle is active
  657   + pengine: allow resources to stop prior to probes completing
  658   + pengine: bundles wait only for other containers on same node to be probed
  659   + pengine: have bundles log to stderr so 'docker logs'/'journalctl -M' works
  660   + pengine: only pass requests for promote/demote flags onto the bundle's child
  661   + pengine: do not map ports into Docker container when net=host is specified
  662   + pengine: allow resources inside bundles to receive clone notifications
  663   + pengine: default to non-interleaved bundle ordering for safety
  664   + pengine: ensure bundle nodes and child resources are correctly cleaned up
  665   + pengine: prevent graph loops when fencing the host underneath a bundle
  666   + pengine: fix multiple memory issues (use-after-free, use-of-NULL) with bundles
  667   + pengine: resources in bundles respect failcounts
  668   + pengine: ensure nested container connections run on the same host
  669   + pengine: ensure unrecoverable remote nodes are fenced even with no resources
  670   + pengine: handle resource migrating behind a migrating remote connection
  671   + pengine: don't prefer to keep unique instances on same node
  672   + pengine: exclude exclusive resources and nodes from symmetric default score
  673   + pengine: if ignoring failure, also ignore migration-threshold
  674   + pengine: restore the ability to send the transition graph via the disk if it gets too big
  675   + pengine: validate no-quorum-policy=suicide correctly
  676   + pengine: avoid crash when alerts section has comments
  677   + pengine: detect permanent master scores at start-up
  678   + pengine: do not re-add a node's default score for each location constraint
  679   + pengine: make sure calculated resource scores are consistent on different architectures
  680   + pengine: retrigger unfencing for changed device parameters only when necessary
  681   + pengine: don't schedule reload and restart in same transition (CLBZ#5309, regression introduced in 1.1.15)
  682   + stonith-ng: make fencing-device reappear properly after reenabling
  683   + stonith-ng: include pcmk_on_action in meta-data so 'on' can be overridden
  684   + tools: allow crm_report to work with no log files specified
  685   + tools: fix use-after-free in crm_diff introduced in 1.1.17
  686   + tools: allow crm_resource to operate on anonymous clones in unknown states
  687   + tools: crm_resource --cleanup on appropriate nodes if we don't know state of resource
  688   + tools: prevent disconnection from crmd during crm_resource --cleanup
  689   + tools: improve messages for crm_resource --force-* options
  690   + tools: crm_mon: avoid infinite process spawning if -E script can't be run
  691   + tools: crm_mon: don't show previous exit-reason for failed action with none
  692   + libcrmservice: list systemd unit files, not only active units (CLBZ#5299)
  693   + libcrmservice: parse long description correctly for LSB meta-data
  694 
  695 
  696 * Thu Jul 06 2017 Ken Gaillot <kgaillot@redhat.com> Pacemaker-1.1.17
  697 - Update source tarball to revision: 301bc44
  698 - Changesets: 539
  699 - Diff:       177 files changed, 11525 insertions(+), 5036 deletions(-)
  700 
  701 - Features added since Pacemaker-1.1.16
  702   + New "bundle" resource type for Docker container use cases (experimental)
  703   + New "PCMK_node_start_state" environment variable to start node in standby
  704   + New "value-source" rule expression attribute in location constraints to
  705     compare a node attribute against a resource parameter
  706   + New "stonith-max-attempts" cluster option to specify how many times
  707     fencing can fail for a target before the cluster will no longer
  708     immediately re-attempt it (previously hard-coded at 10) 
  709   + New "cluster-ipc-limit" cluster option to avoid IPC client eviction in
  710     large clusters
  711   + Failures are now tracked per operation type, as well as per node and
  712     resource (the "fail-count" and "last-failure" node attribute names now end
  713     in "#OPERATION_INTERVAL")
  714   + attrd: Pacemaker Remote node attributes and regular expressions are now
  715     supported on legacy cluster stacks (heartbeat, CMAN, and corosync plugin)
  716   + tools: New "crm_resource --validate" option
  717   + tools: New "stonith_admin --list-targets" option
  718   + tools: New "crm_attribute --pattern" option to match a regular expression
  719   + tools: "crm_resource --cleanup" and "crm_failcount" can now take
  720     --operation and --interval options to operate on a single operation type
  721 
  722 - Changes since Pacemaker-1.1.16
  723   + Fix multiple memory issues (leaks, use-after-free) in libraries
  724   + pengine: unmanaging a guest node resource puts guest in maintenance mode
  725   + cib: broadcasts of cib changes should always pass ACL checks
  726   + crmd,libcrmcommon: update throttling when CPUs are hot-plugged
  727   + crmd: abort transition whenever we lose quorum
  728   + crmd: avoid attribute write-out on join when atomic attrd is used
  729   + crmd: check for too many stonith failures only when aborting for that reason
  730   + crmd: correctly clear failure counts only for a specified node
  731   + crmd: don't fence old DC if it's shutting down as soon-to-be DC joins
  732   + crmd: forget stonith failures when forgetting node
  733   + crmd: all nodes should track stonith failure counts in case they become DC
  734   + crmd: update cache status for guest node whose host is fenced
  735   + dbus: prevent lrmd from hanging on dbus calls
  736   + fencing: detect newly added constraints for stonith devices
  737   + pengine: order remote actions after connection recovery
  738     (regression introduced in 1.1.15)
  739   + pengine: quicker recovery from failed demote
  740   + libcib: determine remote nodes correctly from node status entries
  741   + libcrmcommon: avoid evicting IPC client if messages spike briefly
  742   + libcrmcommon: better XML comment handling prevents infinite election loop
  743   + libcrmcommon: set month correctly in date/time string sent to alert agents
  744   + libfencing,fencing: intelligently remap "action" wrongly specified in config
  745   + libservices: ensure completed ops aren't on blocked ops list
  746   + libservices: properly detect and cancel in-flight systemd/upstart ops
  747   + libservices: properly watch writable DBus handles
  748   + libservices: systemd service that is reloading doesn't cause monitor failure
  749   + pacemaker_remoted: allow graceful shutdown while unmanaged
  750   + pengine,libpe_status: don't clear same fail-count twice
  751   + pengine: consider guest node unclean if its host is unclean
  752   + pengine: do not re-add a node's default score for each location constraint
  753   + pengine: avoid restarting services when recovering remote connection
  754   + pengine: better guest node recovery when host fails
  755   + pengine: guest node fencing doesn't require stonith enabled
  756   + pengine: allow probes of guest node connection resources
  757   + pengine: properly handle allow-migrate explicitly set for remote connection
  758   + pengine: fence failed remote nodes even if no resources can run on them
  759   + tools: resource agents will now get the correct node name on
  760     Pacemaker Remote nodes when using crm_node and crm_attribute
  761   + tools: avoid grep crashes in crm_report when looking for system logs
  762   + tools: crm_resource -C now clears last-failure as well as fail-count
  763   + tools: implement crm_failcount command-line options correctly
  764   + tools: properly ignore version with crm_diff --no-version
  765 
  766 
  767 * Wed Nov 30 2016 Ken Gaillot <kgaillot@redhat.com> Pacemaker-1.1.16
  768 - Update source tarball to revision: 76876b3
  769 - Changesets: 382
  770 - Diff:       145 files changed, 7200 insertions(+), 5621 deletions(-)
  771 
  772 - Features added since Pacemaker-1.1.15
  773   + Location constraints may use rsc-pattern, with submatches expanded
  774   + node-health-base available with node-health-strategy=progressive
  775   + new Pacemaker Development document for working on pacemaker code base
  776   + new PCMK_panic_action variable allows crash instead of reboot on panic
  777   + resources: add resource agent for managing a node attribute
  778   + systemd: include socket units when listing all systemd agents
  779 
  780 - Changes since Pacemaker-1.1.15
  781   + Important security fix for CVE-2016-7035
  782   + Logging is now synchronous when blackboxes are enabled
  783   + All python code except CTS is now compatible with python 2.6+ and 3.2+
  784   + build: take advantage of compiler features for security and performance
  785   + build: update SuSE spec modifications for recent spec changes
  786   + build: avoid watchdog reboot when upgrading pacemaker_remote with sbd
  787   + build: numerous other improvements in environment detection, etc.
  788   + cib: fix infinite loop when no schema validates
  789   + crmd: cl#5185 - record pending operations in CIB before they are performed
  790   + crmd: don't abort transitions for CIB comment changes
  791   + crmd: resend shutdown request if DC loses original request
  792   + documentation: install improved README in doc instead of now-removed AUTHORS
  793   + documentation: clarify licensing and provide copy of all licenses
  794   + documentation: document various features and upgrades better
  795   + fence_legacy: use "list" action when searching cluster-glue agents
  796   + libcib: don't stop sending alerts after releasing DC role
  797   + libcrmcommon: properly handle XML comments when comparing v2 patchset diffs
  798   + libcrmcommon: report errors consistently when waiting for data on connection
  799   + libpengine: avoid potential use-of-NULL
  800   + libservices: use DBusError API properly
  801   + pacemaker_remote: init script stop should always return 0
  802   + pacemaker_remote: allow remote clients to timeout/reconnect
  803   + pacemaker_remote: correctly calculate remaining timeout when receiving messages
  804   + pengine: avoid transition loop for start-then-stop + unfencing
  805   + pengine: correctly update dependent actions of un-runnable clones
  806   + pengine: do not fence a node in maintenance mode if it shuts down cleanly
  807   + pengine: set OCF_RESKEY_CRM_meta_notify_active_* for multistate resources
  808   + resources: ping - avoid temporary files for fping check, support FreeBSD
  809   + resources: SysInfo - better support for FreeBSD
  810   + resources: variable name typo in docker-wrapper
  811   + systemd: order pacemaker after time-sync target
  812   + tools: correct attrd_updater help and error messages when using CMAN
  813   + tools: crm_standby --version/--help should work without cluster running
  814   + tools: make crm_report sanitize CIB before generating readable version
  815   + tools: display pending resource state by default when available
  816   + tools: avoid matching other process with same PID in ClusterMon
  817 
  818 
  819 * Tue Jun 21 2016 Ken Gaillot <kgaillot@redhat.com> Pacemaker-1.1.15
  820 - Update source tarball to revision: 32fa6a5
  821 - Changesets: 533
  822 - Diff:       219 files changed, 6659 insertions(+), 3989 deletions(-)
  823 
  824 - Features added since Pacemaker-1.1.14
  825   + Event-driven alerts allow scripts to be called after significant events
  826   + build: Some files moved from pacemaker package to pacemaker-cli for cleaner pacemaker-remote dependencies
  827   + build: ./configure --with-configdir argument for /etc/sysconfig, /etc/default, etc.
  828   + fencing: Simplify watchdog integration
  829   + fencing: Support concurrent fencing actions via new pcmk_action_limit option
  830   + remote: pacemaker_remote may be stopped without disabling resource first
  831   + remote: Report integration status of Pacemaker Remote nodes in CIB node_state
  832   + tools: crm_mon now reports why resources are not starting
  833   + tools: crm_report now obscures passwords in logfiles
  834   + tools: attrd_updater --update-both/--update-delay options allow changing dampening value
  835   + tools: allow stonith_admin -H '*' to show history for all nodes
  836 
  837 - Changes since Pacemaker-1.1.14
  838   + Fix multiple memory issues (leaks, use-after-free) in daemons, libraries and tools
  839   + Make various log messages more user-friendly
  840   + Improve FreeBSD and Hurd support
  841   + attrd: Prevent possible segfault on exit
  842   + cib: Fix regression to restore support for compressed CIB larger than 1MB
  843   + common: fix regression in 1.1.14 that made have-watchdog always true
  844   + controld: handle DLM "wait fencing" state better
  845   + crmd: Fix regression so that fenced unseen nodes do not remain unclean
  846   + crmd: Take start-delay into account when calculation action timeouts
  847   + crmd: Avoid timeout on older peers when cancelling a resource operation
  848   + fencing: Allow fencing by node ID (e.g. by DLM) even if node left cluster
  849   + lrmd: Fix potential issues when cluster is stopped via systemd shutdown
  850   + pacemakerd: Properly respawn stonithd if it fails
  851   + pengine: Fix regression with multiple monitor levels that could ignore failure
  852   + pengine: Correctly set OCF_RESKEY_CRM_meta_timeout when start-delay is configured
  853   + pengine: Properly order actions for master/slave resources in anti-colocations
  854   + pengine: Respect asymmetrical ordering when trying to move resources
  855   + pengine: Properly order stop actions on guest node relative to host stonith
  856   + pengine: Correctly block actions dependent on unrunnable clones
  857   + remote: Allow remote nodes to have node attributes even with legacy attrd
  858   + remote: Recover from remote node fencing more quickly
  859   + remote: Place resources on newly rejoined remote nodes more quickly
  860   + resources: ping agent can now use fping6 for IPv6 hosts
  861   + resources: SysInfo now resets #health_disk to green when there's sufficient free disk
  862   + tools: crm_report is now more efficient and handles Pacemaker Remote nodes better
  863   + tools: Prevent crm_resource segfault when --resource is not supplied with --restart
  864   + tools: crm_shadow --display option now works
  865   + tools: crm_resource --restart handles groups, target-roles and moving resources better
  866 
  867 
  868 * Thu Jan 14 2016 Ken Gaillot <kgaillot@redhat.com> Pacemaker-1.1.14
  869 - Update source tarball to revision: f0b585a
  870 - Changesets: 724
  871 - Diff:        179 files changed, 13142 insertions(+), 7695 deletions(-)
  872 
  873 - Features added since Pacemaker-1.1.13
  874   + crm_resource: Indicate common reasons why a resource may not start after a cleanup
  875   + crm_resource: New --force-promote and --force-demote options for debugging
  876   + fencing: Support targeting fencing topologies by node name pattern or node attribute
  877   + fencing: Remap sequential topology reboots to all-off-then-all-on
  878   + pengine: Allow resources to start and stop as soon as their state is known on all nodes
  879   + pengine: Include a list of all and available nodes with clone notifications
  880   + pengine: Addition of the clone resource clone-min metadata option
  881   + pengine: Support of multiple-active=block for resource groups
  882   + remote: Resources that create guest nodes can be included in a group resource
  883   + remote: reconnect_interval option for remote nodes to delay reconnect after fence
  884 
  885 - Changes since Pacemaker-1.1.13
  886   + improve support for building on FreeBSD and Debian
  887   + fix multiple memory issues (leaks, use-after-free, double free, use-of-NULL) in components and tools
  888   + cib: Do not terminate due to badly behaving clients
  889   + cman: handle corosync-invented node names of the form Node{id} for peers not in its node list
  890   + controld: replace bashism
  891   + crm_node: Display node state with -l and quorum status with -q, if available
  892   + crmd: resources would sometimes be restarted when only non-unique parameters changed
  893   + crmd: fence remote node after connection failure only once
  894   + crmd: handle resources named the same as cluster nodes
  895   + crmd: Pre-emptively fail in-flight actions when lrmd connections fail
  896   + crmd: Record actions in the CIB as failed if we cannot execute them
  897   + crm_report: Enable password sanitizing by default
  898   + crm_report: Allow log file discovery to be disabled
  899   + crm_resource: Allow the resource configuration to be modified for --force-{check,start,..} calls
  900   + crm_resource: Compensate for -C and -p being called with the child resource for clones
  901   + crm_resource: Correctly clean up all children for anonymous cloned groups
  902   + crm_resource: Correctly clean up failcounts for inactive anonymous clones
  903   + crm_resource: Correctly observe --force when deleting and updating attributes
  904   + crm_shadow: Fix "crm_shadow --diff"
  905   + crm_simulate: Prevent segfault on arches with 64bit time_t
  906   + fencing: ensure "required"/"automatic" only apply to "on" actions
  907   + fencing: Return a provider for the internal fencing agent "#watchdog" instead of logging an error
  908   + fencing: ignore stderr output of fence agents (often used for debug messages)
  909   + fencing: fix issue where deleting a fence device attribute can delete the device
  910   + libcib: potential user input overflow
  911   + libcluster: overhaul peer cache management
  912   + log: make syslog less noisy
  913   + log: fix various misspellings in log messages
  914   + lrmd: cancel currently pending STONITH op if stonithd connection is lost
  915   + lrmd: Finalize all pending and recurring operations when cleaning up a resource
  916   + pengine: Bug cl#5247 - Imply resources running on a container are stopped when the container is stopped
  917   + pengine: cl#5235 - Prevent graph loops that can be introduced by "load_stopped -> migrate_to" ordering
  918   + pengine: Correctly bypass fencing for resources that do not require it
  919   + pengine: do not timeout remote node recurring monitor op failure until after fencing
  920   + pengine: Ensure recurring monitor operations are cancelled when clone instances are de-allocated
  921   + pengine: fixes segfault in pengine when fencing remote node
  922   + pengine: properly handle blocked clone actions
  923   + pengine: ensure failed actions that occurred in node shutdown are displayed
  924   + remote: Correctly display the usage of the ocf:pacemaker:remote resource agent
  925   + remote: do not fail operations because of a migration
  926   + remote: enable reloads for select remote connection options
  927   + resources: allow for top output with or without percent sign in HealthCPU
  928   + resources: Prevent an error message on stopping "Dummy" resource
  929   + systemd: Prevent segfault when logging failed operations
  930   + systemd: Reconnect to System DBus if the connection is closed
  931   + systemd: set systemd resources' timeout values higher than systemd's own default
  932   + tools: Do not send command lines to syslog
  933   + tools: update SNMP MIB
  934   + upstart: Ensure pending structs are correctly unreferenced
  935 
  936 
  937 * Wed Jun 24 2015 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.13
  938 - Update source tarball to revision: 2a1847e
  939 - Changesets: 750
  940 - Diff:       156 files changed, 11323 insertions(+), 3725 deletions(-)
  941 
  942 - Features added since Pacemaker-1.1.12
  943   + Allow fail-counts to be removed en-mass when the new attrd is in operation
  944   + attrd supports private attributes (not written to CIB)
  945   + crmd: Ensure a watchdog device is in use if stonith-watchdog-timeout is configured
  946   + crmd: If configured, trigger the watchdog immediately if we lose quorum and no-quorum-policy=suicide
  947   + crm_diff: Support generating a difference without versions details if --no-version/-u is supplied
  948   + crm_resource: Implement an intelligent restart capability
  949   + Fencing: Advertise the watchdog device for fencing operations
  950   + Fencing: Allow the cluster to recover resources if the watchdog is in use
  951   + fencing: cl#5134 - Support random fencing delay to avoid double fencing
  952   + mcp: Allow orphan children to initiate node panic via SIGQUIT
  953   + mcp: Turn on sbd integration if pacemakerd finds it running
  954   + mcp: Two new error codes that result in machine reset or power off
  955   + Officially support the resource-discovery attribute for location constraints
  956   + PE: Allow natural ordering of colocation sets
  957   + PE: Support non-actionable degraded mode for OCF
  958   + pengine: cl#5207 - Display "UNCLEAN" for resources running on unclean offline nodes
  959   + remote: pcmk remote client tool for use with container wrapper script
  960   + Support machine panics for some kinds of errors (via sbd if available)
  961   + tools: add crm_resource --wait option
  962   + tools: attrd_updater supports --query and --all options
  963   + tools: attrd_updater: Allow attributes to be set for other nodes
  964 
  965 - Changes since Pacemaker-1.1.12
  966   + pengine: exclusive discovery implies rsc is only allowed on exclusive subset of nodes
  967   + acl: Correctly implement the 'reference' acl directive
  968   + acl: Do not delay evaluation of added nodes in some situations
  969   + attrd: b22b1fe did uuid test too early
  970   + attrd: Clean out the node cache when requested by the admin
  971   + attrd: fixes double free in attrd legacy
  972   + attrd: properly write attributes for peers once uuid is discovered
  973   + attrd: refresh should force an immediate write-out of all attributes
  974   + attrd: Simplify how node deletions happen
  975   + Bug rhbz#1067544 - Tools: Correctly handle --ban, --move and --locate for master/slave groups
  976   + Bug rhbz#1181824 - Ensure the DC can be reliably fenced
  977   + cib: Ability to upgrade cib validation schema in legacy mode
  978   + cib: Always generate digests for cib diffs in legacy mode
  979   + cib: assignment where comparison intended
  980   + cib: Avoid nodeid conflicts we don't care about
  981   + cib: Correctly add "update-origin", "update-client" and "update-user" attributes for cib
  982   + cib: Correctly set up signal handlers
  983   + cib: Correctly track node state
  984   + cib: Do not update on disk backups if we're just querying them
  985   + cib: Enable cib legacy mode for plugin-based clusters
  986   + cib: Ensure file-based backends treat '-o section' consistently with the native backend
  987   + cib: Ensure upgrade operations from a non-DC get an acknowledgement
  988   + cib: No need to enforce cib digests for v2 diffs in legacy mode
  989   + cib: Revert d153b86 to instantly get cib synchronized in legacy mode
  990   + cib: tls sock cleanup for remote cib connections
  991   + cli: Ensure subsequent unknown long options are correctly detected
  992   + cluster: Invoke crm_remove_conflicting_peer() only when the new node's uname is being assigned in the node cache
  993   + common: Increment current and age for lib common as a result of APIs being added
  994   + corosync:  Bug cl#5232 - Somewhat gracefully handle nodes with invalid UUIDs
  995   + corosync: Avoid unnecessary repeated CMAP API calls
  996   + crmd/pengine: handle on-fail=ignore properly
  997   + crmd: Add "on_node" attribute for *_last_failure_0 lrm resource operations
  998   + crmd: All peers need to track node shutdown requests
  999   + crmd: Cached copies of transient attributes cease to be valid once a node leaves the membership
 1000   + crmd: Correctly add the local option that validates against schema for pengine to calculate
 1001   + crmd: Disable debug logging that results in significant overhead
 1002   + crmd: do not remove connection resources during re-probe
 1003   + crmd: don't update fail count twice for same failure
 1004   + crmd: Ensure remote connection resources timeout properly during 'migrate_from' action
 1005   + crmd: Ensure throttle_mode() does something on Linux
 1006   + crmd: Fixes crash when remote connection migration fails
 1007   + crmd: gracefully handle remote node disconnects during op execution
 1008   + crmd: Handle remote connection failures while executing ops on remote connection
 1009   + crmd: include remote nodes when forcing cluster wide resource reprobe
 1010   + crmd: never stop recurring monitor ops for pcmk remote during incomplete migration
 1011   + crmd: Prevent the old version of DC from being fenced when it shuts down for rolling-upgrade
 1012   + crmd: Prevent use-of-NULL during reprobe
 1013   + crmd: properly update job limit for baremetal remote-nodes
 1014   + crmd: Remote-node throttle jobs count towards cluster-node hosting conneciton rsc
 1015   + crmd: Reset stonith failcount to recover transitioner when the node rejoins
 1016   + crmd: resolves memory leak in crmd.
 1017   + crmd: respect start-failure-is-fatal even for artifically injected events
 1018   + crmd: Wait for all pending operations to complete before poking the policy engine
 1019   + crmd: When container's host is fenced, cancel in-flight operations
 1020   + crm_attribute: Correctly update config options when -o crm_config is specified
 1021   + crm_failcount: Better error reporting when no resource is specified
 1022   + crm_mon: add exit reason to resource failure output
 1023   + crm_mon: Fill CRM_notify_node in traps with node's uname rather than node's id if possible
 1024   + crm_mon: Repair notification delivery when the v2 patch format is in use
 1025   + crm_node: Correctly remove nodes from the CIB by nodeid
 1026   + crm_report: More patterns for finding logs on non-DC nodes
 1027   + crm_resource: Allow resource restart operations to be node specific
 1028   + crm_resource: avoid deletion of lrm cache on node with resource discovery disabled.
 1029   + crm_resource: Calculate how long to wait for a restart based on the resource timeouts
 1030   + crm_resource: Clean up memory in --restart error paths
 1031   + crm_resource: Display the locations of all anonymous clone children when supplying the children's common ID
 1032   + crm_resource: Ensure --restart sets/clears meta attributes
 1033   + crm_resource: Ensure fail-counts are purged when we redetect the state of all resources
 1034   + crm_resource: Implement --timeout for resource restart operations
 1035   + crm_resource: Include group members when calculating the next timeout
 1036   + crm_resource: Memory leak in error paths
 1037   + crm_resource: Prevent use-after-free
 1038   + crm_resource: Repair regression test outputs
 1039   + crm_resource: Use-after-free when restarting a resource
 1040   + dbus: ref count leaks
 1041   + dbus: Ensure both the read and write queues get dispatched
 1042   + dbus: Fail gracefully if malloc fails
 1043   + dbus: handle dispatch queue when multiple replies need to be processed
 1044   + dbus: Notice when dbus connections get disabled
 1045   + dbus: Remove double-free introduced while trying to make coverity shut up
 1046   + ensure if B is colocated with A, B can never run without A
 1047   + fence_legacy: Avoid passing 'port' to cluster-glue agents
 1048   + fencing: Allow nodes to be purged from the member cache
 1049   + fencing: Correctly make args for fencing agents
 1050   + fencing: Correctly wait for self-fencing to occur when the watchdog is in use
 1051   + fencing: Ensure the hostlist parameter is set for watchdog agents
 1052   + fencing: Force 'stonith-ng' as the system name
 1053   + fencing: Gracefully handle invalid metadata from agents
 1054   + fencing: If configured, wait stonith-watchdog-timer seconds for self-fencing to complete
 1055   + fencing: Reject actions for devices that haven't been explicitly registered yet
 1056   + ipc: properly allocate server enforced buffer size on client
 1057   + ipc: use server enforced buffer during ipc client send
 1058   + lrmd, services: interpret LSB status codes properly
 1059   + lrmd: add back support for class heartbeat agents
 1060   + lrmd: cancel pending async connection during disconnect
 1061   + lrmd: enable ipc proxy for docker-wrapper privileged mode
 1062   + lrmd: fix rescheduling of systemd monitor op during start
 1063   + lrmd: Handle systemd reporting 'done' before a resource is actually stopped
 1064   + lrmd: Hint to child processes that using sd_notify is not required
 1065   + lrmd: Log with the correct personality
 1066   + lrmd: Prevent glib assert triggered by timers being removed from mainloop more than once
 1067   + lrmd: report original timeout when systemd operation completes
 1068   + lrmd: store failed operation exit reason in cib
 1069   + mainloop: resolves race condition mainloop poll involving modification of ipc connections
 1070   + make targetted reprobe for remote node work, crm_resource -C -N <remote node>
 1071   + mcp: Allow a configurable delay when debugging shutdown issues
 1072   + mcp: Avoid requiring 'export' for SYS-V sysconfig options
 1073   + Membership: Detect and resolve nodes that change their ID
 1074   + pacemakerd: resolves memory leak of xml structure in pacemakerd
 1075   + pengine: ability to launch resources in isolated containers
 1076   + pengine: add #kind=remote for baremetal remote-nodes
 1077   + pengine: allow baremetal remote-nodes to recover without requiring fencing when cluster-node fails
 1078   + pengine: allow remote-nodes to be placed in maintenance mode
 1079   + pengine: Avoid trailing whitespaces when printing resource state
 1080   + pengine: cl#5130 - Choose nodes capable of running all the colocated utilization resources
 1081   + pengine: cl#5130 - Only check the capacities of the nodes that are allowed to run the resource
 1082   + pengine: Correctly compare feature set to determine how to unpack meta attributes
 1083   + pengine: disable migrations for resources with isolation containers
 1084   + pengine: disable reloading of resources within isolated container wrappers
 1085   + pengine: Do not aggregate children in a pending state into the started/stopped/etc lists
 1086   + pengine: Do not record duplicate copies of the failed actions
 1087   + pengine: Do not reschedule monitors that are no longer needed while resource definitions have changed
 1088   + pengine: Fence baremetal remote when recurring monitor op fails
 1089   + pengine: Fix colocation with unmanaged resources
 1090   + pengine: Fix the behaviors of multi-state resources with asymmetrical ordering
 1091   + pengine: fixes pengine crash with orphaned remote node connection resource
 1092   + pengine: fixes segfault caused by malformed log warning
 1093   + pengine: handle cloned isolated resources in a sane way
 1094   + pengine: handle isolated resource scenario, cloned group of isolated resources
 1095   + pengine: Handle ordering between stateful and migratable resources
 1096   + pengine: imply stop in container node resources when host node is fenced
 1097   + pengine: only fence baremetal remote when connection can fails or can not be recovered
 1098   + pengine: only kill process group on timeout when on-fail does not equal block.
 1099   + pengine: per-node control over resource discovery
 1100   + pengine: prefer migration target for remote node connections
 1101   + pengine: prevent disabling rsc discovery per node in certain situations
 1102   + pengine: Prevent use-after-free in sort_rsc_process_order()
 1103   + pengine: properly handle ordering during remote connection partial migration
 1104   + pengine: properly recover remote-nodes when cluster-node proxy goes offline
 1105   + pengine: remove unnecessary whitespace from notify environment variables
 1106   + pengine: require-all feature for ordered clones
 1107   + pengine: Resolve memory leaks
 1108   + pengine: resource discovery mode for location constraints
 1109   + pengine: restart master instances on instance attribute changes
 1110   + pengine: Turn off legacy unpacking of resource options into the meta hashtable
 1111   + pengine: Watchdog integration is sufficient for fencing
 1112   + Perform systemd reloads asynchronously
 1113   + ping: Correctly advertise multiplier default
 1114   + Prefer to inherit the  watchdog timeout from SBD
 1115   + properly record stop args after reload
 1116   + provide fake meta data for ra class heartbeat
 1117   + remote: report timestamps for remote connection resource operations
 1118   + remote: Treat recv msg timeout as a disconnect
 1119   + service: Prevent potential use-of-NULL in metadata lookups
 1120   + solaris: Allow compilation when dirent.d_type is not available
 1121   + solaris: Correctly replace the linux swab functions
 1122   + solaris: Disable throttling since /proc doesn't exist
 1123   + stonith-ng: Correctly observe the watchdog completion timeout
 1124   + stonith-ng: Correctly track node state
 1125   + stonith-ng: Reset mainloop source IDs after removing them
 1126   + systemd: Correctly handle long running stop actions
 1127   + systemd: Ensure failed monitor operations always return
 1128   + systemd: Ensure we don't call dbus_message_unref() with NULL
 1129   + systemd: fix crash caused when canceling in-flight operation
 1130   + systemd: Kindly ask dbus NOT to kill the process if the dbus connection fails
 1131   + systemd: Perform actions asynchronously
 1132   + systemd: Perform monitor operations without blocking
 1133   + systemd: Tell systemd not to take DBus down from underneath us
 1134   + systemd: Trick systemd into not stopping our services before us during shutdown
 1135   + tools: Improve crm_mon output with certain option combinations
 1136   + upstart: Monitor actions always return 'ok' or 'not running'
 1137   + upstart: Perform more parts of monitor operations without blocking
 1138   + xml: add 'require-all' to xml schema for constraints
 1139   + xml: cl#5231 - Unset the deleted attributes in the resulting diffs
 1140   + xml: Clone the latest constraint schema in preparation for changes"
 1141   + xml: Correctly create v1 patchsets when deleting attributes
 1142   + xml: Do not change the ordering of properties when applying v1 cib diffs
 1143   + xml: Do not dump deleted attributes
 1144   + xml: Do not prune leaves from v1 cib diffs that are being created with digests
 1145   + xml: Ensure ACLs are reapplied before calculating what a replace operation changed
 1146   + xml: Fix upgrade-1.3.xsl to correctly transform ACL rules with "attribute"
 1147   + xml: Prevent assert errors in crm_element_value() on applying a patch without version information
 1148   + xml: Prevent potential use-of-NULL
 1149 
 1150 
 1151 * Tue Jul 22 2014 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.12
 1152 - Update source tarball to revision: 93a037d
 1153 - Changesets: 795
 1154 - Diff:       195 files changed, 13772 insertions(+), 6176 deletions(-)
 1155 
 1156 - Features added since Pacemaker-1.1.11
 1157   + Changes to the ACL schema to support nodes and unix groups
 1158   + cib: Check ACLs prior to making the update instead of parsing the diff afterwards
 1159   + cib: Default ACL support to on
 1160   + cib: Enable the more efficient xml patchset format
 1161   + cib: Implement zero-copy status update
 1162   + cib: Send all r/w operations via the cluster connection and have all nodes process them
 1163   + crmd: Set "cluster-name" property to corosync's "cluster_name" by default for corosync-2
 1164   + crm_mon: Display brief output if "-b/--brief" is supplied or 'b' is toggled
 1165   + crm_report: Allow ssh alternatives to be used
 1166   + crm_ticket: Support multiple modifications for a ticket in an atomic operation
 1167   + extra: Add logrotate configuration file for /var/log/pacemaker.log
 1168   + Fencing: Add the ability to call stonith_api_time() from stonith_admin
 1169   + logging: daemons always get a log file, unless explicitly set to configured 'none'
 1170   + logging: allows the user to specify a log level that is output to syslog
 1171   + PE: Automatically re-unfence a node if the fencing device definition changes
 1172   + pengine: cl#5174 - Allow resource sets and templates for location constraints
 1173   + pengine: Support cib object tags
 1174   + pengine: Support cluster-specific instance attributes based on rules
 1175   + pengine: Support id-ref in nvpair with optional "name"
 1176   + pengine: Support per-resource maintenance mode
 1177   + pengine: Support site-specific instance attributes based on rules
 1178   + tools: Allow crm_shadow to create older configuration versions
 1179   + tools: Display pending state in crm_mon/crm_resource/crm_simulate if --pending/-j is supplied (cl#5178)
 1180   + xml: Add the ability to have lightweight schema revisions
 1181   + xml: Enable resource sets in location constraints for 1.2 schema
 1182   + xml: Support resources that require unfencing
 1183 
 1184 - Changes since Pacemaker-1.1.11
 1185   + acl: Authenticate pacemaker-remote requests with the node name as the client
 1186   + acl: Read access must be explicitly granted
 1187   + attrd: Ensure attribute dampening is always observed
 1188   + attrd: Remove offline nodes from node cache for "peer-remove" requests
 1189   + Bug cl#5055 - Improved migration support.
 1190   + Bug cl#5184 - Ensure pending probes that ultimately fail are correctly updated
 1191   + Bug cl#5196 - pengine: Check values after expanding templates
 1192   + Bug cl#5212 - Do not promote instances when quorum is lots and no-quorum-policy=freeze
 1193   + Bug cl#5213 - Ensure role colocation with -INFINITY is enforced
 1194   + Bug cl#5213 - Limit the scope of the previous commit to the masters role
 1195   + Bug cl#5219 - pengine: Allow unrelated resources with a common colocation target to remain promoted
 1196   + Bug cl#5222 - cib: Repair rolling update capability
 1197   + Bug cl#5222 - Enable legacy mode whenever a broadcast update is detected
 1198   + Bug rhbz#1036631 - Stop members of cloned groups when dependencies are stopped
 1199   + Bug rhbz#1054307 - cname pattern match should be more restrictive in init script
 1200   + Bug rhbz#1057697 - Use native DBus library for systemd/upstart support to avoid problematic use of threads
 1201   + Bug rhbz#1097457 - Limit the scope of the previous fix and include a helpful comment
 1202   + Bug rhbz#1097457 - Prevent invalid transition when resource are ordered to start after the container they're started in
 1203   + cib: allow setting permanent remote-node attributes
 1204   + cib: Auto-detect which patchset format to use
 1205   + cib: Determine the best value of validate-with if one is not supplied
 1206   + cib: Do not disable cib disk writes if on-disk cib is corrupt
 1207   + cib: Ensure 'cibadmin -R/--replace' commands get replies
 1208   + cib: Erasing the cib is an admin action, bump the admin_epoch instead
 1209   + cib: Fix remote cib based on TLS
 1210   + cib: Ignore patch failures if we already have their contents
 1211   + cib: Validate that everyone still sees the same configuration once all updates have completed
 1212   + cibadmin: Allow priviliged clients to perform tasks as unpriviliged users
 1213   + cibadmin: Remove dangerous commands that exposed unnecessary implementation internal details
 1214   + cluster: Fix segfault on removing a node
 1215   + cluster: Prevent search of unames from attempting to create node entries for unknown nodes
 1216   + cluster: Remove unknown offline nodes with conflicting unames from node cache
 1217   + controld: Do not consider the dlm up until the address list is present
 1218   + controld: handling startup fencing within the controld agent, not the dlm
 1219   + controld: Return OCF_ERR_INSTALLED instead of OCF_NOT_INSTALLED
 1220   + crmd: Ack pending operations that were cancelled due to rsc deletion
 1221   + crmd: Actions can only be executed if their pre-requisits completed successfully
 1222   + crmd: avoid double free caused by nested hash table removal
 1223   + crmd: Avoid spamming the cib by triggering a transition only once per non-status change
 1224   + crmd: Correctly react to successful unfencing operations
 1225   + crmd: Correctly recognise operation cancellations we initiated
 1226   + crmd: Do not erase the status section for unfenced nodes
 1227   + crmd: Do not overwrite existing node state when fencing completes
 1228   + crmd: Do not start timers for already completed operations
 1229   + crmd: Ensure crm_config options are re-read on updates
 1230   + crmd: Fenced nodes that return prior to an election do not need to have their status section reset
 1231   + crmd: make lrm_state hash table not case sensitive
 1232   + crmd: make node_state erase correctly
 1233   + crmd: Only write fence_averride if open() returns a positive file descriptor
 1234   + crmd: Prevent manual fencing confirmations from attempting to create node entries for unknown nodes
 1235   + crmd: Prevent SIGPIPE when notifying CMAN about fencing operations
 1236   + crmd: Remove state of unknown nodes with conflicting unames from CIB
 1237   + crmd: Remove unknown nodes with conflicting unames from CIB
 1238   + crmd: Report unsuccessful unfencing operations
 1239   + crm_diff: Allow the generation of xml patchsets without digests
 1240   + crm_mon: Allow the file created by --as-html to be world readable
 1241   + crm_mon: Ensure resource attributes have been unpacked before displaying connectivity data
 1242   + crm_node: Only remove the named resource from the cib
 1243   + crm_report: Gracefully handle rediculously large logfiles
 1244   + crm_report: Only gather dlm data if dlm_controld is running
 1245   + crm_resource: Gracefully handle -EACCESS when querying the cib
 1246   + crm_verify: Perform a full set of calculations whenever the status section is present
 1247   + fencing: Advertise support for reboot/on/off in the metadata for legacy agents
 1248   + fencing: Automatically switch from 'list' to 'status' to 'static-list' if those actions are not advertised in the metadata
 1249   + fencing: Cache metadata lookups to avoid repeated blocking during device registration
 1250   + fencing: Correctly record which peer performed the fencing operation
 1251   + fencing: default to 'off' when agent does not advertise 'reboot' in metadata
 1252   + fencing: Do not unregister/register all stonith devices on every resource agent change
 1253   + fencing: Execute all required fencing devices regardless of what topology level they are at
 1254   + fencing: Fence using all required devices
 1255   + fencing: Pass the correct options when looking up the history by node name
 1256   + fencing: Update stonith device list only if stonith is enabled
 1257   + get_cluster_type: failing concurrent tool invocations on heartbeat
 1258   + ignore SIGPIPE when gnutls is in use
 1259   + iso8601: Different logic is needed when logging and calculating durations
 1260   + iso8601: Fix memory leak in duration calculation
 1261   + Logging: Bootstrap daemon logging before processing arguments but configure it afterwards
 1262   + lrmd: Cancel recurring operations before stop action is executed
 1263   + lrmd: Expose logging variables expected by OCF agents
 1264   + lrmd: Handle systemd reporting 'done' before a resource is actually stopped/started
 1265   + lrmd: Merge duplicate recurring monitor operations
 1266   + lrmd: Prevent OCF agents from logging to random files due to "value" of setenv() being NULL
 1267   + lrmd: Provide stderr output from agents if available, otherwise fall back to stdout
 1268   + mainloop: Better handle the killing of processes in the act of exiting
 1269   + mainloop: Canceling in-flight operations should not fail if child process has already exited.
 1270   + mainloop: Fixes use after free in process monitor code
 1271   + mcp: Tell systemd not to respawn us if we exit with rc=100
 1272   + membership: Avoid duplicate peer entries in the peer cache
 1273   + pengine: Allow container nodes to migrate with connection resource
 1274   + pengine: avoid assert by searching for stop action on correct node during LogActions
 1275   + pengine: Block restart of resources if any dependent resource in a group is unmanaged
 1276   + pengine: cl#5186 - Avoid running rsc on two nodes when node is fenced during migration
 1277   + pengine: cl#5187 - Prevent resources in an anti-colocation from even temporarily running on a same node
 1278   + pengine: cl#5200 - Before migrating utilization-using resources to a node, take off the load that will no longer run there if it's not introducing transition loop
 1279   + pengine: Correctly handle origin offsets in the future
 1280   + pengine: Correctly observe requires=nothing
 1281   + pengine: Default sequential to TRUE for resource sets for consistency with colocation sets
 1282   + pengine: Delay unfencing until after we know the state of all resources that require unfencing
 1283   + pengine: Do not initiate fencing for unclean nodes when fencing is disabled
 1284   + pengine: Ensure instance numbers are preserved for cloned templates
 1285   + pengine: Ensure unfencing only happens once, even if the transition is interrupted
 1286   + pengine: Fencing devices default to only requiring quorum in order to start
 1287   + pengine: fixes invalid transition caused by clones with more than 10 instances
 1288   + pengine: Force record pending for migrate_to actions
 1289   + pengine: handles edge case where container order constraints are not honored during migration
 1290   + pengine: Ignore failure-timeout only if the failed operation has on-fail="block"
 1291   + pengine: Mark unrunnable stop actions as "blocked" and show the correct current locations
 1292   + pengine: Memory leaks
 1293   + pengine: properly handle fencing of container remote-nodes when the container is orphaned
 1294   + pengine: properly place resource within a container when container is a remote-node.
 1295   + pengine: Unfencing is based on device probes, there is no need to unfence when normal resources are found active
 1296   + pengine: Use "#cluster-name" in rules for setting cluster-specific instance attributes
 1297   + pengine: Use "#site-name" in rules for setting site-specific instance attributes
 1298   + remote: Allow baremetal remote-node connection resources to migrate
 1299   + remote: clear remote-node status correctly
 1300   + remote: Enable migration support for baremetal connection resources by default
 1301   + remote: Handle request/response ipc proxy correctly
 1302   + services: Correctly reset the nice value for lrmd's children
 1303   + services: Do not allow duplicate recurring op entries
 1304   + services: Do not block synced service executions
 1305   + services: Fixes segfault associated with cancelling in-flight recurring operations.
 1306   + services: Remove cancelled recurring ops from internal lists as early as possible
 1307   + services: Remove file descriptors from mainloop as soon as we have drained them
 1308   + services: Reset the scheduling policy and priority for lrmd's children without replying on SCHED_RESET_ON_FORK
 1309   + services_action_cancel: Interpret return code from mainloop_child_kill() correctly
 1310   + stonith_admin: Ensure pointers passed to sscanf() are properly initialized
 1311   + stonith_api_time_helper now returns when the most recent fencing operation completed
 1312   + systemd: Prevent use-of-NULL when determining if an agent exists
 1313   + systemd: Try to handle dbus actions that complete prior to configuring a callback
 1314   + Tools: Non-daemons shouldn't abort just because xml parsing failed
 1315   + Upstart: Allow comilation with glib versions older than 2.28
 1316   + Upstart: Do not attempt upstart jobs if we cannot connect to dbus
 1317   + When data was old, it fixed so that the newest cib might not be acquired.
 1318   + xml: Check all available schemas when doing upgrades
 1319   + xml: Correctly determine the lowest allowed schema version
 1320   + xml: Correctly enforce ACLs after a replace operation
 1321   + xml: Correctly infer attribute changes after a replace operation
 1322   + xml: Create the correct diff when only part of a document is changed
 1323   + xml: Detect attribute ordering changes
 1324   + xml: Detect content that is added and removed in the same update
 1325   + xml: Do not prune meaningful leaves from v1 patchsets
 1326   + xml: Empty patchsets are considered to have applied cleanly
 1327   + xml: Ensure patches always have version details set
 1328   + xml: Find the minimal set of changes when part of a document is replaced
 1329   + xml: If validate-with is missing, we find the most recent schema that accepts it and go from there
 1330   + xml: Introduce a 'move' primitive for v2 patch sets
 1331   + xml: Preserve the attribute order in the patch for subsequent digest validation
 1332   + xml: Resolve memory leak when logging xml blobs
 1333   + xml: Update xml validation to allow '<node type=remote />'
 1334 
 1335 
 1336 * Thu Feb 13 2014 David Vossel <davidvossel@gmail.com> Pacemaker-1.1.11
 1337 - Update source tarball to revision: 33f9d09
 1338 - Changesets: 462
 1339 - Diff:       147 files changed, 6810 insertions(+), 4057 deletions(-)
 1340 
 1341 - Features added since Pacemaker-1.1.10
 1342 
 1343   + attrd: A truly atomic version of attrd for use where CPG is used for cluster communication
 1344   + cib: Allow values to be added/updated and removed in a single update
 1345   + cib: Support XML comments in diffs
 1346   + Core: Allow blackbox logging to be disabled with SIGUSR2
 1347   + crmd: Do not block on proxied calls from pacemaker_remoted
 1348   + crmd: Enable cluster-wide throttling when the cib heavily exceeds its target load
 1349   + crmd: Make the per-node action limit directly configurable in the CIB
 1350   + crmd: Slow down recovery on nodes with IO load
 1351   + crmd: Track CPU usage on cluster nodes and slow down recovery on nodes with high CPU/IO load
 1352   + crm_mon: add --hide-headers option to hide all headers
 1353   + crm_node: Display partition output in sorted order
 1354   + crm_report: Collect logs directly from journald if available
 1355   + Fencing: On timeout, clean up the agent's entire process group
 1356   + Fencing: Support agents that need the host to be unfenced at startup
 1357   + ipc: Raise the default buffer size to 128k
 1358   + PE: Add a special attribute for distinguishing between real nodes and containers in constraint rules
 1359   + PE: Allow location constraints to take a regex pattern to match against resource IDs
 1360   + pengine: Distinguish between the agent being missing and something the agent needs being missing
 1361   + remote: Properly version the remote connection protocol
 1362 
 1363 - Changes since Pacemaker-1.1.10
 1364 
 1365   + Bug rhbz#1011618 - Consistently use 'Slave' as the role for unpromoted master/slave resources
 1366   + Bug rhbz#1057697 - Use native DBus library for systemd and upstart support to avoid problematic use of threads
 1367   + attrd: Any variable called 'cluster' makes the daemon crash before reaching main()
 1368   + attrd: Avoid infinite write loop for unknown peers
 1369   + attrd: Drop all attributes for peers that left the cluster
 1370   + attrd: Give remote-nodes ability to set attributes with attrd
 1371   + attrd: Prevent inflation of attribute dampen intervals
 1372   + attrd: Support SI units for attribute dampening
 1373   + Bug cl#5171 - pengine: Don't prevent clones from running due to dependent resources
 1374   + Bug cl#5179 - Corosync: Attempt to retrieve a peer's node name if it is not already known
 1375   + Bug cl#5181 - corosync: Ensure node IDs are written to the CIB as unsigned integers
 1376   + Bug rhbz#902407 - crm_resource: Handle --ban for master/slave resources as advertised
 1377   + cib: Correctly check for archived configuration files
 1378   + cib: Correctly log short-form xml diffs
 1379   + cib: Fix remote cib based on TLS
 1380   + cibadmin: Report errors during sign-off
 1381   + cli: Do not enabled blackbox for cli tools
 1382   + cluster: Fix segfault on removing a node
 1383   + cman: Do not start pacemaker if cman startup fails
 1384   + cman: Start clvmd and friends from the init script if enabled
 1385   + Command-line tools should stop after an assertion failure
 1386   + controld: Use the correct variant of dlm_controld for corosync-2 clusters
 1387   + cpg: Correctly set the group name length
 1388   + cpg: Ensure the CPG group is always null-terminated
 1389   + cpg: Only process one message at a time to allow other priority jobs to be performed
 1390   + crmd: Correctly observe the configured batch-limit
 1391   + crmd: Correctly update expected state when the previous DC shuts down
 1392   + crmd: Correcty update the history cache when recurring ops change their return code
 1393   + crmd: Don't add node_state to cib, if we have not seen or fenced this node yet
 1394   + crmd: don't segfault on shutdown when using heartbeat
 1395   + crmd: Prevent recurring monitors being cancelled due to notify operations
 1396   + crmd: Reliably detect and act on reprobe operations from the policy engine
 1397   + crmd: When a peer expectedly shuts down, record the new join and expected states into the cib
 1398   + crmd: When the DC gracefully shuts down, record the new expected state into the cib
 1399   + crm_attribute: Do not swallow hostname lookup failures
 1400   + crm_mon: Do not display duplicates of failed actions
 1401   + crm_mon: Reduce flickering in interactive mode
 1402   + crm_resource: Observe --master modifier for --move
 1403   + crm_resource: Provide a meaningful error if --master is used for primitives and groups
 1404   + fencing: Allow fencing for node after topology entries are deleted
 1405   + fencing: Apply correct score to the resource of group
 1406   + fencing: Ignore changes to non-fencing resources
 1407   + fencing: Observe pcmk_host_list during automatic unfencing
 1408   + fencing: Put all fencing agent processes into their own process group
 1409   + fencing: Wait until all possible replies are recieved before continuing with unverified devices
 1410   + ipc: Compress msgs based on client's actual max send size
 1411   + ipc: Have the ipc server enforce a minimum buffer size all clients must use.
 1412   + iso8601: Prevent dates from jumping backwards a day in some timezones
 1413   + lrmd: Correctly calculate metadata for the 'service' class
 1414   + lrmd: Correctly cancel monitor actions for lsb/systemd/service resources on cleaning up
 1415   + mcp: Remove LSB hints that instruct chkconfig to start pacemaker at boot time
 1416   + mcp: Some distros complain when LSB scripts do not include Default-Start/Stop directives
 1417   + pengine: Allow fencing of baremetal remote nodes
 1418   + pengine: cl#5186 - Avoid running rsc on two nodes when node is fenced during migration
 1419   + pengine: Correctly account for the location preferences of things colocated with a group
 1420   + pengine: Correctly handle demotion of grouped masters that are partially demoted
 1421   + pengine: Disable container node probes due to constraint conflicts
 1422   + pengine: Do not allow colocation with blocked clone instances
 1423   + pengine: Do not re-allocate clone instances that are blocked in the Stopped state
 1424   + pengine: Do not restart resources that depend on unmanaged resources
 1425   + pengine: Force record pending for migrate_to actions
 1426   + pengine: Location constraints with role=Started should prevent masters from running at all
 1427   + pengine: Order demote/promote of resources on remote nodes to happen only once the connection is up
 1428   + pengine: Properly handle orphaned multistate resources living on remote-nodes
 1429   + pengine: Properly shutdown orphaned remote connection resources
 1430   + pengine: Recover unexpectedly running container nodes.
 1431   + remote: Add support for ipv6 into pacemaker_remote daemon
 1432   + remote: Handle endian changes between client and server and improve forward compatibility
 1433   + services: Fixes segfault associated with cancelling in-flight recurring operations.
 1434   + services: Reset the scheduling policy and priority for lrmd's children without replying on SCHED_RESET_ON_FORK
 1435 
 1436 * Fri Jul 26 2013 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.10
 1437 - Update source tarball to revision: ab2e209
 1438 - Changesets: 602
 1439 - Diff:       143 files changed, 8162 insertions(+), 5159 deletions(-)
 1440 
 1441 - Features added since Pacemaker-1.1.9
 1442   + Core: Convert all exit codes to positive errno values
 1443   + crm_error: Add the ability to list and print error symbols
 1444   + crm_resource: Allow individual resources to be reprobed
 1445   + crm_resource: Allow options to be set recursively
 1446   + crm_resource: Implement --ban for moving resources away from nodes and --clear (replaces --unmove)
 1447   + crm_resource: Support OCF tracing when using --force-(check|start|stop)
 1448   + PE: Allow active nodes in our current membership to be fenced without quorum
 1449   + PE: Suppress meaningless IDs when displaying anonymous clone status
 1450   + Turn off auto-respawning of systemd services when the cluster starts them
 1451   + Bug cl#5128 - pengine: Support maintenance mode for a single node
 1452 
 1453 - Changes since Pacemaker-1.1.9
 1454   + crmd: cib: stonithd: Memory leaks resolved and improved use of glib reference counting
 1455   + attrd: Fixes deleted attributes during dc election
 1456   + Bug cf#5153 - Correctly display clone failcounts in crm_mon
 1457   + Bug cl#5133 - pengine: Correctly observe on-fail=block for failed demote operation
 1458   + Bug cl#5148 - legacy: Correctly remove a node that used to have a different nodeid
 1459   + Bug cl#5151 - Ensure node names are consistently compared without case
 1460   + Bug cl#5152 - crmd: Correctly clean up fenced nodes during membership changes
 1461   + Bug cl#5154 - Do not expire failures when on-fail=block is present
 1462   + Bug cl#5155 - pengine: Block the stop of resources if any depending resource is unmanaged
 1463   + Bug cl#5157 - Allow migration in the absence of some colocation constraints
 1464   + Bug cl#5161 - crmd: Prevent memory leak in operation cache
 1465   + Bug cl#5164 - crmd: Fixes crash when using pacemaker-remote
 1466   + Bug cl#5164 - pengine: Fixes segfault when calculating transition with remote-nodes.
 1467   + Bug cl#5167 - crm_mon: Only print "stopped" node list for incomplete clone sets
 1468   + Bug cl#5168 - Prevent clones from being bounced around the cluster due to location constraints
 1469   + Bug cl#5170 - Correctly support on-fail=block for clones
 1470   + cib: Correctly read back archived configurations if the primary is corrupted
 1471   + cib: The result is not valid when diffs fail to apply cleanly for CLI tools
 1472   + cib: Restore the ability to embed comments in the configuration
 1473   + cluster: Detect and warn about node names with capitals
 1474   + cman: Do not pretend we know the state of nodes we've never seen
 1475   + cman: Do not unconditionally start cman if it is already running
 1476   + cman: Support non-blocking CPG calls
 1477   + Core: Ensure the blackbox is saved on abnormal program termination
 1478   + corosync: Detect the loss of members for which we only know the nodeid
 1479   + corosync: Do not pretend we know the state of nodes we've never seen
 1480   + corosync: Ensure removed peers are erased from all caches
 1481   + corosync: Nodes that can persist in sending CPG messages must be alive afterall
 1482   + crmd: Do not get stuck in S_POLICY_ENGINE if a node we couldn't fence returns
 1483   + crmd: Do not update fail-count and last-failure for old failures
 1484   + crmd: Ensure all membership operations can complete while trying to cancel a transition
 1485   + crmd: Ensure operations for cleaned up resources don't block recovery
 1486   + crmd: Ensure we return to a stable state if there have been too many fencing failures
 1487   + crmd: Initiate node shutdown if another node claims to have successfully fenced us
 1488   + crmd: Prevent messages for remote crmd clients from being relayed to wrong daemons
 1489   + crmd: Properly handle recurring monitor operations for remote-node agent
 1490   + crmd: Store last-run and last-rc-change for all operations
 1491   + crm_mon: Ensure stale pid files are updated when a new process is started
 1492   + crm_report: Correctly collect logs when 'uname -n' reports fully qualified names
 1493   + fencing: Fail the operation once all peers have been exhausted
 1494   + fencing: Restore the ability to manually confirm that fencing completed
 1495   + ipc: Allow unpriviliged clients to clean up after server failures
 1496   + ipc: Restore the ability for members of the haclient group to connect to the cluster
 1497   + legacy: Support "crm_node --remove" with a node name for corosync plugin (bnc#805278)
 1498   + lrmd: Default to the upstream location for resource agent scratch directory
 1499   + lrmd: Pass errors from lsb metadata generation back to the caller
 1500   + pengine: Correctly handle resources that recover before we operate on them
 1501   + pengine: Delete the old resource state on every node whenever the resource type is changed
 1502   + pengine: Detect constraints with inappropriate actions (ie. promote for a clone)
 1503   + pengine: Ensure per-node resource parameters are used during probes
 1504   + pengine: If fencing is unavailable or disabled, block further recovery for resources that fail to stop
 1505   + pengine: Implement the rest of get_timet_now() and rename to get_effective_time
 1506   + pengine: Re-initiate _active_ recurring monitors that previously failed but have timed out
 1507   + remote: Workaround for inconsistent tls handshake behavior between gnutls versions
 1508   + systemd: Ensure we get shut down correctly by systemd
 1509   + systemd: Reload systemd after adding/removing override files for cluster services
 1510   + xml: Check for and replace non-printing characters with their octal equivalent while exporting xml text
 1511   + xml: Prevent lockups by setting a more reliable buffer allocation strategy
 1512 
 1513 * Fri Mar 08 2013 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.9
 1514 - Update source tarball to revision: 7e42d77
 1515 - Statistics:
 1516   Changesets: 731
 1517   Diff:       1301 files changed, 92909 insertions(+), 57455 deletions(-)
 1518 
 1519 - Features added in Pacemaker-1.1.9
 1520   + corosync: Allow cman and corosync 2.0 nodes to use a name other than uname()
 1521   + corosync: Use queues to avoid blocking when sending CPG messages
 1522   + ipc: Compress messages that exceed the configured IPC message limit
 1523   + ipc: Use queues to prevent slow clients from blocking the server
 1524   + ipc: Use shared memory by default
 1525   + lrmd: Support nagios remote monitoring
 1526   + lrmd: Pacemaker Remote Daemon for extending pacemaker functionality outside corosync cluster.
 1527   + pengine: Check for master/slave resources that are not OCF agents
 1528   + pengine: Support a 'requires' resource meta-attribute for controlling whether it needs quorum, fencing or nothing
 1529   + pengine: Support for resource container
 1530   + pengine: Support resources that require unfencing before start
 1531 
 1532 - Changes since Pacemaker-1.1.8
 1533   + attrd: Correctly handle deletion of non-existant attributes
 1534   + Bug cl#5135 - Improved detection of the active cluster type
 1535   + Bug rhbz#913093 - Use crm_node instead of uname
 1536   + cib: Avoid use-after-free by correctly support cib_no_children for non-xpath queries
 1537   + cib: Correctly process XML diff's involving element removal
 1538   + cib: Performance improvements for non-DC nodes
 1539   + cib: Prevent error message by correctly handling peer replies
 1540   + cib: Prevent ordering changes when applying xml diffs
 1541   + cib: Remove text nodes from cib replace operations
 1542   + cluster: Detect node name collisions in corosync
 1543   + cluster: Preserve corosync membership state when matching node name/id entries
 1544   + cman: Force fenced to terminate on shutdown
 1545   + cman: Ignore qdisk 'nodes'
 1546   + core: Drop per-user core directories
 1547   + corosync: Avoid errors when closing failed connections
 1548   + corosync: Ensure peer state is preserved when matching names to nodeids
 1549   + corosync: Clean up CMAP connections after querying node name
 1550   + corosync: Correctly detect corosync 2.0 clusters even if we don't have permission to access it
 1551   + crmd: Bug cl#5144 - Do not updated the expected status of failed nodes
 1552   + crmd: Correctly determin if cluster disconnection was abnormal
 1553   + crmd: Correctly relay messages for remote clients (bnc#805626, bnc#804704)
 1554   + crmd: Correctly stall the FSA when waiting for additional inputs
 1555   + crmd: Detect and recover when we are evicted from CPG
 1556   + crmd: Differentiate between a node that is up and coming up in peer_update_callback()
 1557   + crmd: Have cib operation timeouts scale with node count
 1558   + crmd: Improved continue/wait logic in do_dc_join_finalize()
 1559   + crmd: Prevent election storms caused by getrusage() values being too close
 1560   + crmd: Prevent timeouts when performing pacemaker level membership negotiation
 1561   + crmd: Prevent use-after-free of fsa_message_queue during exit
 1562   + crmd: Store all current actions when stalling the FSA
 1563   + crm_mon: Do not try to render a blank cib and indicate the previous output is now stale
 1564   + crm_mon: Fixes crm_mon crash when using snmp traps.
 1565   + crm_mon: Look for the correct error codes when applying configuration updates
 1566   + crm_report: Ensure policy engine logs are found
 1567   + crm_report: Fix node list detection
 1568   + crm_resource: Have crm_resource generate a valid transition key when sending resource commands to the crmd
 1569   + date/time: Bug cl#5118 - Correctly convert seconds-since-epoch to the current time
 1570   + fencing: Attempt to provide more information that just 'generic error' for failed actions
 1571   + fencing: Correctly record completed but previously unknown fencing operations
 1572   + fencing: Correctly terminate when all device options have been exhausted
 1573   + fencing: cov#739453 - String not null terminated
 1574   + fencing: Do not merge new fencing requests with stale ones from dead nodes
 1575   + fencing: Do not start fencing until entire device topology is found or query results timeout.
 1576   + fencing: Do not wait for the query timeout if all replies have arrived
 1577   + fencing: Fix passing of parameters from CMAN containing '='
 1578   + fencing: Fix non-comparison when sorting devices by priority
 1579   + fencing: On failure, only try a topology device once from the remote level.
 1580   + fencing: Only try peers for non-topology based operations once
 1581   + fencing: Retry stonith device for duration of action's timeout period.
 1582   + heartbeat: Remove incorrect assert during cluster connect
 1583   + ipc: Bug cl#5110 - Prevent 100% CPU usage when looking for synchronous replies
 1584   + ipc: Use 50k as the default compression threshold
 1585   + legacy: Prevent assertion failure on routing ais messages (bnc#805626)
 1586   + legacy: Re-enable logging from the pacemaker plugin
 1587   + legacy: Relax the 'active' check for plugin based clusters to avoid false negatives
 1588   + legacy: Skip peer process check if the process list is empty in crm_is_corosync_peer_active()
 1589   + mcp: Only define HA_DEBUGLOG to avoid agent calls to ocf_log printing everything twice
 1590   + mcp: Re-attach to existing pacemaker components when mcp fails
 1591   + pengine: Any location constraint for the slave role applies to all roles
 1592   + pengine: Avoid leaking memory when cleaning up failcounts and using containers
 1593   + pengine: Bug cl#5101 - Ensure stop order is preserved for partially active groups
 1594   + pengine: Bug cl#5140 - Allow set members to be stopped when the subseqent set has require-all=false
 1595   + pengine: Bug cl#5143 - Prevent shuffling of anonymous master/slave instances
 1596   + pengine: Bug rhbz#880249 - Ensure orphan masters are demoted before being stopped
 1597   + pengine: Bug rhbz#880249 - Teach the PE how to recover masters into primitives
 1598   + pengine: cl#5025 - Automatically clear failcount for start/monitor failures after resource parameters change
 1599   + pengine: cl#5099 - Probe operation uses the timeout value from the minimum interval monitor by default (#bnc776386)
 1600   + pengine: cl#5111 - When clone/master child rsc has on-fail=stop, insure all children stop on failure.
 1601   + pengine: cl#5142 - Do not delete orphaned children of an anonymous clone
 1602   + pengine: Correctly unpack active anonymous clones
 1603   + pengine: Ensure previous migrations are closed out before attempting another one
 1604   + pengine: Introducing the whitebox container resources feature
 1605   + pengine: Prevent double-free for cloned primitive from template
 1606   + pengine: Process rsc_ticket dependencies earlier for correctly allocating resources (bnc#802307)
 1607   + pengine: Remove special cases for fencing resources
 1608   + pengine: rhbz#902459 - Remove rsc node status for orphan resources
 1609   + systemd: Gracefully handle unexpected DBus return types
 1610   + Replace the use of the insecure mktemp(3) with mkstemp(3)
 1611 
 1612 * Thu Sep 20 2012 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.8
 1613 
 1614 - Update source tarball to revision: 1a5341f
 1615 - Statistics:
 1616   Changesets: 1019
 1617   Diff:       2107 files changed, 117258 insertions(+), 73606 deletions(-)
 1618 
 1619 - All APIs have been cleaned up and reduced to essentials
 1620 - Pacemaker now includes a replacement lrmd that supports systemd and upstart agents
 1621 - Config and state files (cib.xml, PE inputs and core files) have moved to new locations
 1622 - The crm shell has become a separate project and no longer included with Pacemaker
 1623 - All daemons/tools now have a unified set of error codes based on errno.h (see crm_error)
 1624 
 1625 - Changes since Pacemaker-1.1.7
 1626   + Core: Bug cl#5032 - Rewrite the iso8601 date handling code
 1627   + Core: Correctly extract the version details from a diff
 1628   + Core: Log blackbox contents, if enabled, when an error occurs
 1629   + Core: Only LOG_NOTICE and higher are sent to syslog
 1630   + Core: Replace use of IPC from clplumbing with IPC from libqb
 1631   + Core: SIGUSR1 now enables blackbox logging, SIGTRAP to write out
 1632   + Core: Support a blackbox for additional logging detail after crashes/errors
 1633   + Promote support for advanced fencing logic to the stable schema
 1634   + Promote support for node starting scores to the stable schema
 1635   + Promote support for service and systemd to the stable schema
 1636 
 1637   + attrd: Differentiate between updating all our attributes and everybody updating all theirs too
 1638   + attrd: Have single-shot clients wait for an ack before disconnecting
 1639   + cib: cl#5026 - Synced cib updates should not return until the cpg broadcast is complete.
 1640   + corosync: Detect when the first corosync has not yet formed and handle it gracefully
 1641   + corosync: Obtain a full list of configured nodes, including their names, when we connect to the quorum API
 1642   + corosync: Obtain a node name from DNS if one was not already known
 1643   + corosync: Populate the cib nodelist from corosync if available
 1644   + corosync: Use the CFG API and DNS to determine node names if not configured in corosync.conf
 1645   + crmd: Block after 10 failed fencing attempts for a node
 1646   + crmd: cl#5051 - Fixes file leak in PE ipc connection initialization.
 1647   + crmd: cl#5053 - Fixes fail-count not being updated properly.
 1648   + crmd: cl#5057 - Restart sub-systems correctly (bnc#755671)
 1649   + crmd: cl#5068 - Fixes crm_node -R option so it works with corosync 2.0
 1650   + crmd: Correctly re-establish failed attrd connections
 1651   + crmd: Detect when the quorum API isn't configured for corosync 2.0
 1652   + crmd: Do not overwrite any configured node type (eg. quorum node)
 1653   + crmd: Enable use of new lrmd daemon and client library in crmd.
 1654   + crmd: Overhaul the way node state is recorded and updated in the CIB
 1655   + fencing: Bug rhbz#853537 - Prevent use-of-NULL when the cib libraries are not available
 1656   + fencing: cl#5073 - Add 'off' as an valid value for stonith-action option.
 1657   + fencing: cl#5092 - Always timeout stonith operations if timeout period expires.
 1658   + fencing: cl#5093 - Stonith per device timeout option
 1659   + fencing: Clean up if we detect a failed connection
 1660   + fencing: Delegate complex self fencing requests - we wont be around to see it to completion
 1661   + fencing: Ensure all peers are notified of complex fencing op completion
 1662   + fencing: Fix passing of fence_legacy parameters containing '='
 1663   + fencing: Gracefully handle metadata requests for unknown agents
 1664   + fencing: Return cached dynamic target list for busy devices.
 1665   + fencing: rhbz#801355 - Abort transition on DC when external fencing operation is detected
 1666   + fencing: rhbz#801355 - Merge fence requests for identical operations already in progress.
 1667   + fencing: rhbz#801355 - Report fencing operations external of pacemaker to cib
 1668   + fencing: Specify the action to perform using action= instead of the older option=
 1669   + fencing: Stop building fake metadata for broken agents
 1670   + fencing: Tolerate agents that report empty metadata in the admin tool
 1671   + mcp: Correctly retry the connection to corosync on failure
 1672   + mcp: Do not shut down IPC until the last client exits
 1673   + mcp: Prevent use-after-free when running against corosync 1.x
 1674   + pengine: Bug cl#5059 - Use the correct action's status when calculating required actions for interleaved clones
 1675   + pengine: Bypass online/offline checking resource detection for ping/quorum nodes
 1676   + pengine: cl#5044 - migrate_to no longer requires load_stopped for avoiding possible transition loop
 1677   + pengine: cl#5069 - Honor 'on-fail=ignore' even when operation is disabled.
 1678   + pengine: cl#5070 - Allow influence of promotion score when multistate rsc is left hand of colocation
 1679   + pengine: cl#5072 - Fixes monitor op stopping after rsc promotion.
 1680   + pengine: cl#5072 - Fixes pengine regression test failures
 1681   + pengine: Correctly set the status for nodes not intended to run Pacemaker
 1682   + pengine: Do not append instance numbers to anonymous clones
 1683   + pengine: Fix failcount expiration
 1684   + pengine: Fix memory leaks found by valgrind
 1685   + pengine: Fix use-after-free and use-of-NULL errors detected by coverity
 1686   + pengine: Fixes use of colocation scores other than +/- INFINITY
 1687   + pengine: Improve detection of rejoining nodes
 1688   + pengine: Prevent use-of-NULL when tracing is enabled
 1689   + pengine: Stonith resources are allowed to start even if their probes haven't completed on partially active nodes
 1690   + services: New class called 'service' which expands to the correct (LSB/systemd/upstart) standard
 1691   + services: Support Asynchronous systemd/upstart actions
 1692   + Tools: crm_shadow - Bug cl#5062 - Correctly set argv[0] when forking a shell process
 1693   + Tools: crm_report: Always include system logs (if we can find them)
 1694 
 1695 * Wed Mar 28 2012 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.7
 1696 - Update source tarball to revision: bc7ff2c
 1697 - Statistics:
 1698   Changesets: 513
 1699   Diff:       1171 files changed, 90472 insertions(+), 19368 deletions(-)
 1700 
 1701 - Changes since Pacemaker-1.1.6.1
 1702   + ais: Prepare for corosync versions using IPC from libqb
 1703   + cib: Correctly shutdown in the presence of peers without relying on timers
 1704   + cib: Don't halt disk writes if the previous digest is missing
 1705   + cib: Determine when there are no peers to respond to our shutdown request and exit
 1706   + cib: Ensure no additional messages are processed after we begin terminating
 1707   + Cluster: Hook up the callbacks to the corosync quorum notifications
 1708   + Core: basename() may modify its input, do not pass in a constant
 1709   + Core: Bug cl#5016 - Prevent failures in recurring ops from being lost
 1710   + Core: Bug rhbz#800054 - Correctly retrieve heartbeat uuids
 1711   + Core: Correctly determine when an XML file should be decompressed
 1712   + Core: Correctly track the length of a string without reading from uninitialzied memory (valgrind)
 1713   + Core: Ensure signals are handled eventually in the absense of timer sources or IPC messages
 1714   + Core: Prevent use-of-NULL in crm_update_peer()
 1715   + Core: Strip text nodes from on disk xml files
 1716   + Core: Support libqb for logging
 1717   + corosync: Consistently set the correct uuid with get_node_uuid()
 1718   + Corosync: Correctly disconnect from corosync variants
 1719   + Corosync: Correctly extract the node id from membership udpates
 1720   + corosync: Correctly infer lost members from the quorum API
 1721   + Corosync: Default to using the nodeid as the node's uuid (instead of uname)
 1722   + corosync: Ensure we catch nodes that leave the membership, even if the ringid doesn't change
 1723   + corosync: Hook up CPG membership
 1724   + corosync: Relax a development assert and gracefully handle the error condition
 1725   + corosync: Remove deprecated member of the CFG API
 1726   + corosync: Treat CS_ERR_QUEUE_FULL the same as CS_ERR_TRY_AGAIN
 1727   + corosync: Unset the process list when nodes dissappear on us
 1728   + crmd: Also purge fencing results when we enter S_NOT_DC
 1729   + crmd: Bug cl#5015 - Remove the failed operation as well as the resulting fail-count and last-failure attributes
 1730   + crmd: Correctly determine when a node can suicide with fencing
 1731   + crmd: Election - perform the age comparison only once
 1732   + crmd: Fast-track shutdown if we couldn't request it via attrd
 1733   + crmd: Leave it up to the PE to decide which ops can/cannot be reload
 1734   + crmd: Prevent use-after-free when calling delete_resource due to CRM_OP_REPROBE
 1735   + crmd: Supply format arguments in the correct order
 1736   + fencing: Add missing format parameter
 1737   + fencing: Add the fencing topology section to the 1.1 configuration schema
 1738   + fencing: fence_legacy - Drop spurilous host argument from status query
 1739   + fencing: fence_legacy - Ensure port is available as an environment variable when calling monitor
 1740   + fencing: fence_pcmk - don't block if nothing is specified on stdin
 1741   + fencing: Fix log format error
 1742   + fencing: Fix segfault caused by passing garbage to dlsym()
 1743   + fencing: Fix use-of-NULL in process_remote_stonith_query()
 1744   + fencing: Fix use-of-NULL when listing installed devices
 1745   + fencing: Implement support for advanced fencing topologies: eg. kdump || (network && disk) || power
 1746   + fencing: More gracefully handle failed 'list' operations for devices that only support a single connection
 1747   + fencing: Prevent duplicate free when listing devices
 1748   + fencing: Prevent uninitialized pointers being passed to free
 1749   + fencing: Prevent use-after-free, we may need the query result for subsequent operations
 1750   + fencing: Provide enough data to construct an entry in the node's fencing history
 1751   + fencing: Standardize on /one/ method for clients to request members be fenced
 1752   + fencing: Supress errors when listing all registered devices
 1753   + mcp: corosync_cfg_state_track was removed from the corosync API, luckily we didnt use it for anything
 1754   + mcp: Do not specify a WorkingDirectory in the systemd unit file - startup fails if its not available
 1755   + mcp: Set the HA_quorum_type env variable consistently with our corosync plugin
 1756   + mcp: Shut down if one of our child processes can/should not be respawned
 1757   + pengine: Bug cl#5000 - Ensure ordering is preserved when depending on partial sets
 1758   + pengine: Bug cl#5028 - Unmanaged services should block shutdown unless in maintenance mode
 1759   + pengine: Bug cl#5038 - Prevent restart of anonymous clones when clone-max decreases
 1760   + pengine: Bug cl#5007 - Fixes use of colocation constraints with multi-state resources
 1761   + pengine: Bug cl#5014 - Prevent asymmetrical order constraints from causing resource stops
 1762   + pengine: Bug cl#5000 - Implements ability to create rsc_order constraint sets such that A can start after B or C has started.
 1763   + pengine: Correctly migrate a resource that has just migrated
 1764   + pengine: Correct return from error path
 1765   + pengine: Detect reloads of previously migrated resources
 1766   + pengine: Ensure post-migration stop actions occur before node shutdown
 1767   + pengine: Log as loudly as possible when we cannot shut down a cluster node
 1768   + pengine: Reload of a resource no longer causes a restart of dependent resources
 1769   + pengine: Support limiting the number of concurrent live migrations
 1770   + pengine: Support referencing templates in constraints
 1771   + pengine: Support of referencing resource templates in resource sets
 1772   + pengine: Support to make tickets standby for relinquishing tickets gracefully
 1773   + stonith: A "start" operation of a stonith resource does a "monitor" on the device beyond registering it
 1774   + stonith: Bug rhbz#745526 - Ensure stonith_admin actually gets called by fence_pcmk
 1775   + Stonith: Ensure all nodes receive and deliver notifications of the manual override
 1776   + stonith: Fix the stonith timeout issue (cl#5009, bnc#727498)
 1777   + Stonith: Implement a manual override for when nodes are known to be safely off
 1778   + Tools: Bug cl#5003 - Prevent use-after-free in crm_simlate
 1779   + Tools: crm_mon - Support to display tickets (based on Yuusuke Iida's work)
 1780   + Tools: crm_simulate - Support to grant/revoke/standby/activate tickets from the new ticket state section
 1781   + Tools: Implement crm_node functionality for native corosync
 1782   + Fix a number of potential problems reported by coverity
 1783 
 1784 * Wed Aug 31 2011 Andrew Beekhof <andrew@beekhof.net> 1.1.6
 1785 - Update source tarball to revision: 676e5f25aa46 tip
 1786 - Statistics:
 1787   Changesets: 376
 1788   Diff:       1761 files changed, 36259 insertions(+), 140578 deletions(-)
 1789 
 1790 - Changes since Pacemaker-1.1.5
 1791   + ais: check for retryable errors when dispatching AIS messages
 1792   + ais: Correctly disconnect from Corosync and Cman based clusters
 1793   + ais: Followup to previous patch - Ensure we drain the corosync queue of messages when Glib tells us there is input
 1794   + ais: Handle IPC error before checking for NULL data (bnc#702907)
 1795   + cib: Check the validation version before adding the originator details of a CIB change
 1796   + cib: Remove disconnected remote connections from mainloop
 1797   + cman: Correctly override existing fenced operations
 1798   + cman: Dequeue all the cman emitted events and not only the first one leaving the others in the event's queue.
 1799   + cman: Don't call fenced_join and fenced_leave when notifying cman of a fencing event.
 1800   + cman: We need to run the crmd as root for CMAN so that we can ACK fencing operations
 1801   + Core: Cancelled and pending operations do not count as failed
 1802   + Core: Ensure there is sufficient space for EOS when building short-form option strings
 1803   + Core: Fix variable expansion in pkg-config files
 1804   + Core: Partial revert of accidental commit in previous patch
 1805   + Core: Use dlopen to load heartbeat libraries on-demand
 1806   + crmd: Bug lf#2509 - Watch for config option changes from the CIB even if we're not the DC
 1807   + crmd: Bug lf#2528 - Introduce a slight delay when creating a transition to allow attrd time to perform its updates
 1808   + crmd: Bug lf#2559 - Fail actions that were scheduled for a failed/fenced node
 1809   + crmd: Bug lf#2584 - Allow nodes to fence themselves if they're the last one standing
 1810   + crmd: Bug lf#2632 - Correctly handle nodes that return faster than stonith
 1811   + crmd: Cancel timers for actions that were pending on dead nodes
 1812   + crmd: Catch fence operations that claim to succeed but did not really
 1813   + crmd: Do not wait for actions that were pending on dead nodes
 1814   + crmd: Ensure we do not attempt to perform action on failed nodes
 1815   + crmd: Prevent use-of-NULL by g_hash_table_iter_next()
 1816   + crmd: Recurring actions shouldn't cause the last non-recurring action to be forgotten
 1817   + crmd: Store only the last and last failed operation in the CIB
 1818   + mcp: dirname() modifies the input path - pass in a copy of the logfile path
 1819   + mcp: Enable stack detection logic instead of forcing 'corosync'
 1820   + mcp: Fix spelling mistake in systemd service script that prevents shutdown
 1821   + mcp: Shut down if corosync becomes unavailable
 1822   + mcp: systemd control file is now functional
 1823   + pengine: Before migrating an utilization-using resource to a node, take off the load which will no longer run there (lf#2599, bnc#695440)
 1824   + pengine: Before migrating an utilization-using resource to a node, take off the load which will no longer run there (regression tests) (lf#2599, bnc#695440)
 1825   + pengine: Bug lf#2574 - Prevent shuffling by choosing the correct clone instance to stop
 1826   + pengine: Bug lf#2575 - Use uname for migration variables, id is a UUID on heartbeat
 1827   + pengine: Bug lf#2581 - Avoid group restart when clone (re)starts on an unrelated node
 1828   + pengine: Bug lf#2613, lf#2619 - Group migration after failures and non-default utilization policies
 1829   + pengine: Bug suse#707150 - Prevent services being active if dependencies on clones are not satisfied
 1830   + pengine: Correctly recognise which recurring operations are currently active
 1831   + pengine: Demote from Master does not clear previous errors
 1832   + pengine: Ensure restarts due to definition changes cause the start action to be re-issued not probes
 1833   + pengine: Ensure role is preserved for unmanaged resources
 1834   + pengine: Ensure unmanaged resources have the correct role set so the correct monitor operation is chosen
 1835   + pengine: Fix memory leak for re-allocated resources reported by valgrind
 1836   + pengine: Implement cluster ticket and deadman
 1837   + pengine: Implement resource template
 1838   + pengine: Correctly determine the state of multi-state resources with a partial operation history
 1839   + pengine: Only allocate master/slave resources once
 1840   + pengine: Partial revert of 'Minor code cleanup CS: cf6bca32376c On: 2011-08-15'
 1841   + pengine: Resolve memory leak reported by valgrind
 1842   + pengine: Restore the ability to save inputs to disk
 1843   + Shell: implement -w,--wait option to wait for the transition to finish
 1844   + Shell: repair template list command
 1845   + Shell: set of commands to examine logs, reports, etc
 1846   + Stonith: Consolidate pcmk_host_map into run_stonith_agent so that it is applied consistently
 1847   + Stonith: Deprecate pcmk_arg_map for the saner pcmk_host_argument
 1848   + Stonith: Fix use-of-NULL by g_hash_table_lookup
 1849   + Stonith: Improved pcmk_host_map parsing
 1850   + Stonith: Prevent use-of-NULL by g_hash_table_lookup
 1851   + Stonith: Prevent use-of-NULL when no Linux-HA stonith agents are present
 1852   + stonith: Add missing entries to stonith_error2string()
 1853   + Stonith: Correctly finish sending agent options if the initial write is interrupted
 1854   + stonith: Correctly handle synchronous calls
 1855   + stonith: Coverity - Correctly construct result list for the query API call
 1856   + stonith: Coverity - Remove badly constructed memory allocation from the query API call
 1857   + stonith: Ensure completed operations are recorded as such in the history
 1858   + Stonith: Ensure device parameters are passed to the daemon during registration
 1859   + stonith: Fix use-of-NULL in stonith_api_device_list()
 1860   + stonith: stonith_admin - Prevent use of uninitialized pointer by --history command
 1861   + Tools: Bug lf#2528 - Make progress when attrd_updater is called repeatedly within the dampen interval but with the same value
 1862   + Tools: crm_report - Correctly extract data from the local node
 1863   + Tools: crm_report - Remove newlines when detecting the node list
 1864   + Tools: crm_report - Repair the ability to extract data from the local machine
 1865   + Tools: crm_report - Report on all detected backtraces
 1866 
 1867 * Fri Feb 11 2011 Andrew Beekhof <andrew@beekhof.net> 1.1.5
 1868 - Update source tarball to revision: baad6636a053
 1869 - Statistics:
 1870   Changesets: 184
 1871   Diff:       605 files changed, 46103 insertions(+), 26417 deletions(-)
 1872 
 1873 - Changes since Pacemaker-1.1.4
 1874   + Add the ability to delegate sub-sections of the cluster to non-root users via ACLs
 1875     Needs to be enabled at compile time, not enabled by default.
 1876   + ais: Bug lf#2550 - Report failed processes immediately
 1877   + Core: Prevent recently introduced use-after-free in replace_xml_child()
 1878   + Core: Reinstate the logic that skips past non-XML_ELEMENT_NODE children
 1879   + Core: Remove extra calls to xmlCleanupParser resulting in use-after-free
 1880   + Core: Repair reference to child-of-child after removal of xml_child_iter_filter from get_message_xml()
 1881   + crmd: Bug lf#2545 - Ensure notify variables are accurate for stop operations
 1882   + crmd: Cancel recurring operations while we're still connected to the lrmd
 1883   + crmd: Reschedule the PE_START action if its not already running when we try to use it
 1884   + crmd: Update failcount for failed promote and demote operations
 1885   + pengine: Bug lf#2445 - Avoid relying on stickness for stable clone placement
 1886   + pengine: Bug lf#2445 - Do not override configured clone stickiness values
 1887   + pengine: Bug lf#2493 - Don't imply colocation requirements when applying ordering constraints with clones
 1888   + pengine: Bug lf#2495 - Prevent segfault by validating the contents of ordering sets
 1889   + pengine: Bug lf#2508 - Correctly reconstruct the status of anonymous cloned groups
 1890   + pengine: Bug lf#2518 - Avoid spamming the logs with errors for orphan resources
 1891   + pengine: Bug lf#2544 - Prevent unstable clone placement by factoring in the current node's score before all others
 1892   + pengine: Bug lf#2554 - target-role alone is not sufficient to promote resources
 1893   + pengine: Correct target_rc for probes of inactive resources (fix regression introduced by cs:ac3f03006e95)
 1894   + pengine: Ensure that fencing has completed for stop actions on stonith-dependent resources (lf#2551)
 1895   + pengine: Only update the node's promotion score if the resource is active there
 1896   + pengine: Only use the promotion score from the current clone instance
 1897   + pengine: Prevent use-of-NULL resulting from variable shadowing spotted by Coverity
 1898   + pengine: Prevent use-of-NULL when there is status for an undefined node
 1899   + pengine: Prevet use-after-free resulting from unintended recursion when chosing a node to promote master/slave resources
 1900   + Shell: don't create empty optional sections (bnc#665131)
 1901   + Stonith: Teach stonith_admin to automagically obtain the current node attributes for the target from the CIB
 1902   + tools: Bug lf#2527 - Prevent use-of-NULL in crm_simulate
 1903   + Tools: Prevent crm_resource commands from being lost due to the use of cib_scope_local
 1904 
 1905 * Wed Oct 20 2010 Andrew Beekhof <andrew@beekhof.net> 1.1.4
 1906 - Update source tarball to revision: 75406c3eb2c1 tip
 1907 - Statistics:
 1908   Changesets: 169
 1909   Diff:       772 files changed, 56172 insertions(+), 39309 deletions(-)
 1910 
 1911 - Changes since Pacemaker-1.1.3
 1912   + Italian translation of Clusters from Scratch
 1913   + Significant performance enhancements to the Policy Engine and CIB
 1914   + cib: Bug lf#2506 - Don't remove client's when notifications fail, they might just be too big
 1915   + cib: Drop invalid/failed connections from the client hashtable
 1916   + cib: Ensure all diffs sent to peers have sufficient ordering information
 1917   + cib: Ensure non-change diffs can preserve the ordering on the other side
 1918   + cib: Fix the feature set check
 1919   + cib: Include version information on our synthesised diffs when nothing changed
 1920   + cib: Optimize the way we detect group/set ordering changes - 15% speedup
 1921   + cib: Prevent false detection of config updates with the new diff format
 1922   + cib: Reduce unnecessary copying when comparing xml objects
 1923   + cib: Repair the processing of updates sent from peer nodes
 1924   + cib: Revert part of a recent commit that purged still valid connections
 1925   + cib: The feature set version check is only valid if the current value is non-NULL
 1926   + Core: Actually removing diff markers is necessary
 1927   + Core: Bug lf#2506 - Drop the compression limit because Heartbeat's IPC code sucks
 1928   + Core: Cache Relax-NG schemas - profiling indicates many cycles are wasted needlessly re-parsing them
 1929   + Core: Correctly compare against crm_log_level in the logging macros
 1930   + Core: Correctly extract the version details from a diff
 1931   + Core: Correctly hook up the RNG schema cache
 1932   + Core: Correctly use lazy_xml_sort() for v2 digests
 1933   + Core: Don't compress large payload elements unless we're approaching message limits
 1934   + Core: Don't insert empty ID tags when applying diffs
 1935   + Core: Enable the improve v2 digests
 1936   + Core: Ensure ordering is preserved when applying diffs
 1937   + Core: Fix the CRM_CHECK macro
 1938   + Core: Modify the v2 digest algorithm so that some fields are sorted
 1939   + Core: Prevent use-after-free when creating a CIB update for a timed out action
 1940   + Core: Prevent use-of-NULL when cleaning up RelaxNG data structures
 1941   + Core: Provide significant performance improvements by implementing versioned diffs and digests
 1942   + crmd: All pending operations should be recorded, even recurring ones with high start delays
 1943   + crmd: Don't abort transitions when probes are completed on a node
 1944   + crmd: Don't hide stop events that time out - allowing faster recovery in the presence of overloaded hosts
 1945   + crmd: Ensure the CIB is always writable on the DC by removing a timing hole
 1946   + crmd: Include the correct transition details for timed out operations
 1947   + crmd: Prevent use of NULL by making copies of the operation's hash table
 1948   + crmd: There's no need to check the cib version from the 'added' part of diff updates
 1949   + crmd: Use the supplied timeout for stop actions
 1950   + mcp: Ensure valgrind is able to log its output somewhere
 1951   + mcp: Use 99/01 for the start/stop sequence to avoid problems with services (such as libvirtd) started by init - Patch from Vladislav Bogdanov
 1952   + pengine: Ensure fencing of the DC preceeds the STONITH_DONE operation
 1953   + pengine: Fix memory leak introduced as part of the conversion to GHashTables
 1954   + pengine: Fix memory leak when processing completed migration actions
 1955   + pengine: Fix typo leading to use-of-NULL in the new ordering code
 1956   + pengine: Free memory in recently introduced helper function
 1957   + pengine: lf#2478 - Implement improved handling and recovery of atomic resource migrations
 1958   + pengine: Obtain massive speedup by prepending to the list of ordering constraints (which can grow quite large)
 1959   + pengine: Optimize the logic for deciding which non-grouped anonymous clone instances to probe for
 1960   + pengine: Prevent clones from being stopped because resources colocated with them cannot be active
 1961   + pengine: Try to ensure atomic migration ops occur within a single transition
 1962   + pengine: Use hashtables instead of linked lists for performance sensitive datastructures
 1963   + pengine: Use the original digest algorithm for parameter lists
 1964   + stonith: cleanup children on timeout in fence_legacy
 1965   + Stonith: Fix two memory leaks
 1966   + Tools: crm_shadow - Avoid replacing the entire configuration (including status)
 1967 
 1968 * Tue Sep 21 2010 Andrew Beekhof <andrew@beekhof.net> 1.1.3
 1969 - Update source tarball to revision: e3bb31c56244 tip
 1970 - Statistics:
 1971   Changesets: 352
 1972   Diff:       481 files changed, 14130 insertions(+), 11156 deletions(-)
 1973 
 1974 - Changes since Pacemaker-1.1.2.1
 1975   + ais: Bug lf#2401 - Improved processing when the peer crmd processes join/leave
 1976   + ais: Correct the logic for conecting to plugin based clusters
 1977   + ais: Do not supply a process list in mcp-mode
 1978   + ais: Drop support for whitetank in the 1.1 release series
 1979   + ais: Get an initial dump of the node membership when connecting to quorum-based clusters
 1980   + ais: Guard against saturated cpg connections
 1981   + ais: Handle CS_ERR_TRY_AGAIN in more cases
 1982   + ais: Move the code for finding uid before the fork so that the child does no logging
 1983   + ais: Never allow quorum plugins to affect connection to the pacemaker plugin
 1984   + ais: Sign everyone up for peer process updates, not just the crmd
 1985   + ais: The cluster type needs to be set before initializing classic openais connections
 1986   + cib: Also free query result for xpath operations that return more than one hit
 1987   + cib: Attempt to resolve memory corruption when forking a child to write the cib to disk
 1988   + cib: Correctly free memory when writing out the cib to disk
 1989   + cib: Fix the application of unversioned diffs
 1990   + cib: Remove old developmental error logging
 1991   + cib: Restructure the 'valid peer' check for deciding which instructions to ignore
 1992   + cman: Correctly process membership/quorum changes from the pcmk plugin. Allow other message types through untouched
 1993   + cman: Filter directed messages not intended for us
 1994   + cman: Grab the initial membership when we connect
 1995   + cman: Keep the list of peer processes up-to-date
 1996   + cman: Make sure our common hooks are called after a cman membership update
 1997   + cman: Make sure we can compile without cman present
 1998   + cman: Populate sender details for cpg messages
 1999   + cman: Update the ringid for cman based clusters
 2000   + Core: Correctly unpack HA_Messages containing multiple entries with the same name
 2001   + Core: crm_count_member() should only track nodes that have the full stack up
 2002   + Core: New developmental logging system inspired by the kernel and a PoC from Lars Ellenberg
 2003   + crmd: All nodes should see status updates, not just he DC
 2004   + crmd: Allow non-DC nodes to clear failcounts too
 2005   + crmd: Base DC election on process relative uptime
 2006   + crmd: Bug lf#2439 - cancel_op() can also return HA_RSCBUSY
 2007   + crmd: Bug lf#2439 - Handle asynchronous notification of resource deletion events
 2008   + crmd: Bug lf#2458 - Ensure stop actions always have the relevant resource attributes
 2009   + crmd: Disable age as a criteria for cman based clusters, its not reliable enough
 2010   + crmd: Ensure we activate the DC timer if we detect an alternate DC
 2011   + crmd: Factor the nanosecond component of process uptime in elections
 2012   + crmd: Fix assertion failure when performing async resource failures
 2013   + crmd: Fix handling of async resource deletion results
 2014   + crmd: Include the action for crm graph operations
 2015   + crmd: Make sure the membership cache is accurate after a sucessful fencing operation
 2016   + crmd: Make sure we always poke the FSA after a transition to clear any TE_HALT actions
 2017   + crmd: Offer crm-level membership once the peer starts the crmd process
 2018   + crmd: Only need to request quorum update for plugin based clusters
 2019   + crmd: Prevent assertion failure for stop actions resulting from cs: 3c0bc17c6daf
 2020   + crmd: Prevent everyone from loosing DC elections by correctly initializing all relevant variables
 2021   + crmd: Prevent segmentation fault
 2022   + crmd: several fixes for async resource delete (thanks to beekhof)
 2023   + crmd: Use the correct define/size for lrm resource IDs
 2024   + Introduce two new cluster types 'cman' and 'corosync', replaces 'quorum_provider' concept
 2025   + mcp: Add missing headers when built without heartbeat support
 2026   + mcp: Correctly initialize the string containing the list of active daemons
 2027   + mcp: Fix macro expansion in init script
 2028   + mcp: Fix the expansion of the pid file in the init script
 2029   + mcp: Handle CS_ERR_TRY_AGAIN when connecting to libcfg
 2030   + mcp: Make sure we can compile the mcp without cman present
 2031   + mcp: New master control process for (re)spawning pacemaker daemons
 2032   + mcp: Read config early so we can re-initialize logging asap if daemonizing
 2033   + mcp: Rename the mcp binary to pacemakerd and create a 'pacemaker' init script
 2034   + mcp: Resend our process list after every CPG change
 2035   + mcp: Tell chkconfig we need to shut down early on
 2036   + pengine: Avoid creating invalid ordering constraints for probes that are not needed
 2037   + pengine: Bug lf#1959 - Fail unmanaged resources should not prevent other services from shutting down
 2038   + pengine: Bug lf#2422 - Ordering dependencies on partially active groups not observed properly
 2039   + pengine: Bug lf#2424 - Use notify oepration definition if it exists in the configuration
 2040   + pengine: Bug lf#2433 - No services should be stopped until probes finish
 2041   + pengine: Bug lf#2453 - Enforce clone ordering in the absense of colocation constraints
 2042   + pengine: Bug lf#2476 - Repair on-fail=block for groups and primitive resources
 2043   + pengine: Correctly detect when there is a real failcount that expired and needs to be cleared
 2044   + pengine: Correctly handle pseudo action creation
 2045   + pengine: Correctly order clone startup after group/clone start
 2046   + pengine: Correct use-after-free introduced in the prior patch
 2047   + pengine: Do not demote resources because something that requires it can not run
 2048   + pengine: Fix colocation for interleaved clones
 2049   + pengine: Fix colocation with partially active groups
 2050   + pengine: Fix potential use-after-free defect from coverity
 2051   + pengine: Fix previous merge
 2052   + pengine: Fix use-after-free in order_actions() reported by valgrind
 2053   + pengine: Make the current data set a global variable so it does not need to be passed around everywhere
 2054   + pengine: Prevent endless loop when looking for operation definitions in the configuration
 2055   + pengine: Prevent segfault by ensuring the arguments to do_calculations() are initialized
 2056   + pengine: Rewrite the ordering constraint logic to be simplicity, clarity and maintainability
 2057   + pengine: Wait until stonith is available, do not fall back to shutdown for nodes requesting termination
 2058   + Resolve coverity RESOURCE_LEAK defects
 2059   + Shell: Complete the transition to using crm_attribute instead of crm_failcount and crm_standby
 2060   + stonith: Advertise stonith-ng options in the metadata
 2061   + stonith: Bug lf#2461 - Prevent segfault by not looking up operations if the hashtable has not been initialized yet
 2062   + stonith: Bug lf#2473 - Add the timeout at the top level where the daemon is looking for it
 2063   + Stonith: Bug lf#2473 - Ensure stonith operations complete within the timeout and are terminated if they run too long
 2064   + stonith: Bug lf#2473 - Ensure timeouts are included for fencing operations
 2065   + stonith: Bug lf#2473 - Gracefully handle remote operations that arrive late (after we have done notifications)
 2066   + stonith: Correctly parse pcmk_host_list parameters that appear on a single line
 2067   + stonith: Map poweron/poweroff back to on/off expected by the stonith tool from cluster-glue
 2068   + stonith: pass the configuration to the stonith program via environment variables (bnc#620781)
 2069   + Stonith: Use the timeout specified by the user
 2070   + Support starting plugin-based Pacemaker clusters with the MCP as well
 2071   + Tools: Bug lf#2456 - Fix assertion failure in crm_resource
 2072   + tools: crm_node - Repair the ability to connect to openais based clusters
 2073   + tools: crm_node - Use the correct short option for --cman
 2074   + tools: crm_report - corosync.conf wont necessarily contain the text 'pacemaker' anymore
 2075   + Tools: crm_simulate - Fix use-after-free in when terminating
 2076   + tools: crm_simulate - Resolve coverity USE_AFTER_FREE defect
 2077   + Tools: Drop the 'pingd' daemon and resource agent in favor of ocf:pacemaker:ping
 2078   + Tools: Fix recently introduced use-of-NULL
 2079   + Tools: Fix use-after-free defects from coverity
 2080 
 2081 * Wed May 12 2010 Andrew Beekhof <andrew@beekhof.net> 1.1.2
 2082 - Update source tarball to revision: c25c972a25cc tip
 2083 - Statistics:
 2084   Changesets: 339
 2085   Diff:       708 files changed, 37918 insertions(+), 10584 deletions(-)
 2086 - Changes since Pacemaker-1.1.1
 2087   + ais: Do not count votes from offline nodes and calculate current votes before sending quorum data
 2088   + ais: Ensure the list of active processes sent to clients is always up-to-date
 2089   + ais: Look for the correct conf variable for turning on file logging
 2090   + ais: Need to find a better and thread-safe way to set core_uses_pid. Disable for now.
 2091   + ais: Use the threadsafe version of getpwnam
 2092   + Core: Bump the feature set due to the new failcount expiry feature
 2093   + Core: fix memory leaks exposed by valgrind
 2094   + Core: Bug lf#2414 - Prevent use-after-free reported by valgrind when doing xpath based deletions
 2095   + crmd: Bug lf#2414 - Prevent use-after-free of the PE connection after it dies
 2096   + crmd: Bug lf#2414 - Prevent use-after-free of the stonith-ng connection
 2097   + crmd: Bug lf#2401 - Improved detection of partially active peers
 2098   + crmd: Bug lf#2379 - Ensure the cluster terminates when the PE is not available
 2099   + crmd: Do not allow the target_rc to be misused by resource agents
 2100   + crmd: Do not ignore action timeouts based on FSA state
 2101   + crmd: Ensure we don't get stuck in S_PENDING if we lose an election to someone that never talks to us again
 2102   + crmd: Fix memory leaks exposed by valgrind
 2103   + crmd: Remove race condition that could lead to multiple instances of a clone being active on a machine
 2104   + crmd: Send erase_status_tag() calls to the local CIB when the DC is fenced, since there is no DC to accept them
 2105   + crmd: Use global fencing notifications to prevent secondary fencing operations of the DC
 2106   + pengine: Bug lf#2317 - Avoid needless restart of primitive depending on a clone
 2107   + pengine: Bug lf#2361 - Ensure clones observe mandatory ordering constraints if the LHS is unrunnable
 2108   + pengine: Bug lf#2383 - Combine failcounts for all instances of an anonymous clone on a host
 2109   + pengine: Bug lf#2384 - Fix intra-set colocation and ordering
 2110   + pengine: Bug lf#2403 - Enforce mandatory promotion (colocation) constraints
 2111   + pengine: Bug lf#2412 - Correctly find clone instances by their prefix
 2112   + pengine: Do not be so quick to pull the trigger on nodes that are coming up
 2113   + pengine: Fix memory leaks exposed by valgrind
 2114   + pengine: Rewrite native_merge_weights() to avoid Fix use-after-free
 2115   + Shell: Bug bnc#590035 - always reload status if working with the cluster
 2116   + Shell: Bug bnc#592762 - Default to using the status section from the live CIB
 2117   + Shell: Bug lf#2315 - edit multiple meta_attributes sets in resource management
 2118   + Shell: Bug lf#2221 - enable comments
 2119   + Shell: Bug bnc#580492 - implement new cibstatus interface and commands
 2120   + Shell: Bug bnc#585471 - new cibstatus import command
 2121   + Shell: check timeouts also against the default-action-timeout property
 2122   + Shell: new configure filter command
 2123   + Tools: crm_mon - fix memory leaks exposed by valgrind
 2124 
 2125 * Tue Feb 16 2010 Andrew Beekhof <andrew@beekhof.net> - 1.1.1
 2126 - First public release of Pacemaker 1.1
 2127 - Package reference documentation in a doc subpackage
 2128 - Move cts into a subpackage so that it can be easily consumed by others
 2129 - Update source tarball to revision: 17d9cd4ee29f
 2130   + New stonith daemon that supports global notifications
 2131   + Service placement influenced by the physical resources
 2132   + A new tool for simulating failures and the cluster’s reaction to them
 2133   + Ability to serialize an otherwise unrelated a set of resource actions (eg. Xen migrations)
 2134 
 2135 * Mon Jan 18 2010 Andrew Beekhof <andrew@beekhof.net> - 1.0.7
 2136 - Update source tarball to revision: 2eed906f43e9 (stable-1.0) tip
 2137 - Statistics:
 2138       Changesets:      193
 2139       Diff:            220 files changed, 15933 insertions(+), 8782 deletions(-)
 2140 - Changes since 1.0.5-4
 2141   + pengine: Bug 2213 - Ensure groups process location constraints so that clone-node-max works for cloned groups
 2142   + pengine: Bug lf#2153 - non-clones should not restart when clones stop/start on other nodes
 2143   + pengine: Bug lf#2209 - Clone ordering should be able to prevent startup of dependent clones
 2144   + pengine: Bug lf#2216 - Correctly identify the state of anonymous clones when deciding when to probe
 2145   + pengine: Bug lf#2225 - Operations that require fencing should wait for 'stonith_complete' not 'all_stopped'.
 2146   + pengine: Bug lf#2225 - Prevent clone peers from stopping while another is instance is (potentially) being fenced
 2147   + pengine: Correctly anti-colocate with a group
 2148   + pengine: Correctly unpack ordering constraints for resource sets to avoid graph loops
 2149   + Tools: crm: load help from crm_cli.txt
 2150   + Tools: crm: resource sets (bnc#550923)
 2151   + Tools: crm: support for comments (LF 2221)
 2152   + Tools: crm: support for description attribute in resources/operations (bnc#548690)
 2153   + Tools: hb2openais: add EVMS2 CSM processing (and other changes) (bnc#548093)
 2154   + Tools: hb2openais: do not allow empty rules, clones, or groups (LF 2215)
 2155   + Tools: hb2openais: refuse to convert pure EVMS volumes
 2156   + cib: Ensure the loop for login message terminates
 2157   + cib: Finally fix reliability of receiving large messages over remote plaintext connections
 2158   + cib: Fix remote notifications
 2159   + cib: For remote connections, default to CRM_DAEMON_USER since thats the only one that the cib can validate the password for using PAM
 2160   + cib: Remote plaintext - Retry sending parts of the message that did not fit the first time
 2161   + crmd: Ensure batch-limit is correctly enforced
 2162   + crmd: Ensure we have the latest status after a transition abort
 2163   + (bnc#547579,547582): Tools: crm: status section editing support
 2164   + shell: Add allow-migrate as allowed meta-attribute (bnc#539968)
 2165   + Medium: Build: Do not automatically add -L/lib, it could cause 64-bit arches to break
 2166   + Medium: pengine: Bug lf#2206 - rsc_order constraints always use score at the top level
 2167   + Medium: pengine: Only complain about target-role=master for non m/s resources
 2168   + Medium: pengine: Prevent non-multistate resources from being promoted through target-role
 2169   + Medium: pengine: Provide a default action for resource-set ordering
 2170   + Medium: pengine: Silently fix requires=fencing for stonith resources so that it can be set in op_defaults
 2171   + Medium: Tools: Bug lf#2286 - Allow the shell to accept template parameters on the command line
 2172   + Medium: Tools: Bug lf#2307 - Provide a way to determin the nodeid of past cluster members
 2173   + Medium: Tools: crm: add update method to template apply (LF 2289)
 2174   + Medium: Tools: crm: direct RA interface for ocf class resource agents (LF 2270)
 2175   + Medium: Tools: crm: direct RA interface for stonith class resource agents (LF 2270)
 2176   + Medium: Tools: crm: do not add score which does not exist
 2177   + Medium: Tools: crm: do not consider warnings as errors (LF 2274)
 2178   + Medium: Tools: crm: do not remove sets which contain id-ref attribute (LF 2304)
 2179   + Medium: Tools: crm: drop empty attributes elements
 2180   + Medium: Tools: crm: exclude locations when testing for pathological constraints (LF 2300)
 2181   + Medium: Tools: crm: fix exit code on single shot commands
 2182   + Medium: Tools: crm: fix node delete (LF 2305)
 2183   + Medium: Tools: crm: implement -F (--force) option
 2184   + Medium: Tools: crm: rename status to cibstatus (LF 2236)
 2185   + Medium: Tools: crm: revisit configure commit
 2186   + Medium: Tools: crm: stay in crm if user specified level only (LF 2286)
 2187   + Medium: Tools: crm: verify changes on exit from the configure level
 2188   + Medium: ais: Some clients such as gfs_controld want a cluster name, allow one to be specified in corosync.conf
 2189   + Medium: cib: Clean up logic for receiving remote messages
 2190   + Medium: cib: Create valid notification control messages
 2191   + Medium: cib: Indicate where the remote connection came from
 2192   + Medium: cib: Send password prompt to stderr so that stdout can be redirected
 2193   + Medium: cts: Fix rsh handling when stdout is not required
 2194   + Medium: doc: Fill in the section on removing a node from an AIS-based cluster
 2195   + Medium: doc: Update the docs to reflect the 0.6/1.0 rolling upgrade problem
 2196   + Medium: doc: Use Publican for docbook based documentation
 2197   + Medium: fencing: stonithd: add metadata for stonithd instance attributes (and support in the shell)
 2198   + Medium: fencing: stonithd: ignore case when comparing host names (LF 2292)
 2199   + Medium: tools: Make crm_mon functional with remote connections
 2200   + Medium: xml: Add stopped as a supported role for operations
 2201   + Medium: xml: Bug bnc#552713 - Treat node unames as text fields not IDs
 2202   + Medium: xml: Bug lf#2215 - Create an always-true expression for empty rules when upgrading from 0.6
 2203 
 2204 * Thu Oct 29 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-4
 2205 - Include the fixes from CoroSync integration testing
 2206 - Move the resource templates - they are not documentation
 2207 - Ensure documentation is placed in a standard location
 2208 - Exclude documentation that is included elsewhere in the package
 2209 
 2210 - Update the tarball from upstream to version ee19d8e83c2a
 2211   + cib: Correctly clean up when both plaintext and tls remote ports are requested
 2212   + pengine: Bug bnc#515172 - Provide better defaults for lt(e) and gt(e) comparisions
 2213   + pengine: Bug lf#2197 - Allow master instances placemaker to be influenced by colocation constraints
 2214   + pengine: Make sure promote/demote pseudo actions are created correctly
 2215   + pengine: Prevent target-role from promoting more than master-max instances
 2216   + ais: Bug lf#2199 - Prevent expected-quorum-votes from being populated with garbage
 2217   + ais: Prevent deadlock - don't try to release IPC message if the connection failed
 2218   + cib: For validation errors, send back the full CIB so the client can display the errors
 2219   + cib: Prevent use-after-free for remote plaintext connections
 2220   + crmd: Bug lf#2201 - Prevent use-of-NULL when running heartbeat
 2221 
 2222 * Wed Oct 13 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-3
 2223 - Update the tarball from upstream to version 38cd629e5c3c
 2224   + Core: Bug lf#2169 - Allow dtd/schema validation to be disabled
 2225   + pengine: Bug lf#2106 - Not all anonymous clone children are restarted after configuration change
 2226   + pengine: Bug lf#2170 - stop-all-resources option had no effect
 2227   + pengine: Bug lf#2171 - Prevent groups from starting if they depend on a complex resource which can not
 2228   + pengine: Disable resource management if stonith-enabled=true and no stonith resources are defined
 2229   + pengine: do not include master score if it would prevent allocation
 2230   + ais: Avoid excessive load by checking for dead children every 1s (instead of 100ms)
 2231   + ais: Bug rh#525589 - Prevent shutdown deadlocks when running on CoroSync
 2232   + ais: Gracefully handle changes to the AIS nodeid
 2233   + crmd: Bug bnc#527530 - Wait for the transition to complete before leaving S_TRANSITION_ENGINE
 2234   + crmd: Prevent use-after-free with LOG_DEBUG_3
 2235   + Medium: xml: Mask the "symmetrical" attribute on rsc_colocation constraints (bnc#540672)
 2236   + Medium (bnc#520707): Tools: crm: new templates ocfs2 and clvm
 2237   + Medium: Build: Invert the disable ais/heartbeat logic so that --without (ais|heartbeat) is available to rpmbuild
 2238   + Medium: pengine: Bug lf#2178 - Indicate unmanaged clones
 2239   + Medium: pengine: Bug lf#2180 - Include node information for all failed ops
 2240   + Medium: pengine: Bug lf#2189 - Incorrect error message when unpacking simple ordering constraint
 2241   + Medium: pengine: Correctly log resources that would like to start but can not
 2242   + Medium: pengine: Stop ptest from logging to syslog
 2243   + Medium: ais: Include version details in plugin name
 2244   + Medium: crmd: Requery the resource metadata after every start operation
 2245 
 2246 * Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 1.0.5-2.1
 2247 - rebuilt with new openssl
 2248 
 2249 * Wed Aug 19 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-2
 2250 - Add versioned perl dependency as specified by
 2251     https://fedoraproject.org/wiki/Packaging/Perl#Packages_that_link_to_libperl
 2252 - No longer remove RPATH data, it prevents us finding libperl.so and no other
 2253   libraries were being hardcoded
 2254 - Compile in support for heartbeat
 2255 - Conditionally add heartbeat-devel and corosynclib-devel to the -devel requirements
 2256   depending on which stacks are supported
 2257 
 2258 * Mon Aug 17 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5
 2259 - Add dependency on resource-agents
 2260 - Use the version of the configure macro that supplies --prefix, --libdir, etc
 2261 - Update the tarball from upstream to version 462f1569a437 (Pacemaker 1.0.5 final)
 2262   + Tools: crm_resource - Advertise --move instead of --migrate
 2263   + Medium: Extra: New node connectivity RA that uses system ping and attrd_updater
 2264   + Medium: crmd: Note that dc-deadtime can be used to mask the brokeness of some switches
 2265 
 2266 * Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.0.5-0.7.c9120a53a6ae.hg
 2267 - Use bzipped upstream tarball.
 2268 
 2269 * Wed Jul  29 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.6.c9120a53a6ae.hg
 2270 - Add back missing build auto* dependencies
 2271 - Minor cleanups to the install directive
 2272 
 2273 * Tue Jul  28 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.5.c9120a53a6ae.hg
 2274 - Add a leading zero to the revision when alphatag is used
 2275 
 2276 * Tue Jul  28 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.5-0.4.c9120a53a6ae.hg
 2277 - Incorporate the feedback from the cluster-glue review
 2278 - Realistically, the version is a 1.0.5 pre-release
 2279 - Use the global directive instead of define for variables
 2280 - Use the haclient/hacluster group/user instead of daemon
 2281 - Use the _configure macro
 2282 - Fix install dependencies
 2283 
 2284 * Fri Jul  24 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-3
 2285 - Initial Fedora checkin
 2286 - Include an AUTHORS and license file in each package
 2287 - Change the library package name to pacemaker-libs to be more
 2288   Fedora compliant
 2289 - Remove execute permissions from xml related files
 2290 - Reference the new cluster-glue devel package name
 2291 - Update the tarball from upstream to version c9120a53a6ae
 2292   + pengine: Only prevent migration if the clone dependency is stopping/starting on the target node
 2293   + pengine: Bug 2160 - Don't shuffle clones due to colocation
 2294   + pengine: New implementation of the resource migration (not stop/start) logic
 2295   + Medium: Tools: crm_resource - Prevent use-of-NULL by requiring a resource name for the -A and -a options
 2296   + Medium: pengine: Prevent use-of-NULL in find_first_action()
 2297 
 2298 * Tue Jul 14 2009 Andrew Beekhof <andrew@beekhof.net> - 1.0.4-2
 2299 - Reference authors from the project AUTHORS file instead of listing in description
 2300 - Change Source0 to reference the Mercurial repo
 2301 - Cleaned up the summaries and descriptions
 2302 - Incorporate the results of Fedora package self-review
 2303 
 2304 * Thu Jun 04 2009 Andrew Beekhof <abeekhof@suse.de> - 1.0.4
 2305 - Update source tarball to revision: 1d87d3e0fc7f (stable-1.0)
 2306 - Statistics:
 2307     Changesets:      209
 2308     Diff:            266 files changed, 12010 insertions(+), 8276 deletions(-)
 2309 - Changes since Pacemaker-1.0.3
 2310   + (bnc#488291): ais: do not rely on byte endianness on ptr cast
 2311   + (bnc#507255): Tools: crm: delete rsc/op_defaults (these meta_attributes are killing me)
 2312   + (bnc#507255): Tools: crm: import properly rsc/op_defaults
 2313   + (LF 2114): Tools: crm: add support for operation instance attributes
 2314   + ais: Bug lf#2126 - Messages replies cannot be routed to transient clients
 2315   + ais: Fix compilation for the latest Corosync API (v1719)
 2316   + attrd: Do not perform all updates as complete refreshes
 2317   + cib: Fix huge memory leak affecting heartbeat-based clusters
 2318   + Core: Allow xpath queries to match attributes
 2319   + Core: Generate the help text directly from a tool options struct
 2320   + Core: Handle differences in 0.6 messaging format
 2321   + crmd: Bug lf#2120 - All transient node attribute updates need to go via attrd
 2322   + crmd: Correctly calculate how long an FSA action took to avoid spamming the logs with errors
 2323   + crmd: Fix another large memory leak affecting Heartbeat based clusters
 2324   + lha: Restore compatibility with older versions
 2325   + pengine: Bug bnc#495687 - Filesystem is not notified of successful STONITH under some conditions
 2326   + pengine: Make running a cluster with STONITH enabled but no STONITH resources an error and provide details on resolutions
 2327   + pengine: Prevent use-ofNULL when using resource ordering sets
 2328   + pengine: Provide inter-notification ordering guarantees
 2329   + pengine: Rewrite the notification code to be understanable and extendable
 2330   + Tools: attrd - Prevent race condition resulting in the cluster forgetting the node wishes to shut down
 2331   + Tools: crm: regression tests
 2332   + Tools: crm_mon - Fix smtp notifications
 2333   + Tools: crm_resource - Repair the ability to query meta attributes
 2334   + Low Build: Bug lf#2105 - Debian package should contain pacemaker doc and crm templates
 2335   + Medium (bnc#507255): Tools: crm: handle empty rsc/op_defaults properly
 2336   + Medium (bnc#507255): Tools: crm: use the right obj_type when creating objects from xml nodes
 2337   + Medium (LF 2107): Tools: crm: revisit exit codes in configure
 2338   + Medium: cib: Do not bother validating updates that only affect the status section
 2339   + Medium: Core: Include supported stacks in version information
 2340   + Medium: crmd: Record in the CIB, the cluster infrastructure being used
 2341   + Medium: cts: Do not combine crm_standby arguments - the wrapper can not process them
 2342   + Medium: cts: Fix the CIBAusdit class
 2343   + Medium: Extra: Refresh showscores script from Dominik
 2344   + Medium: pengine: Build a statically linked version of ptest
 2345   + Medium: pengine: Correctly log the actions for resources that are being recovered
 2346   + Medium: pengine: Correctly log the occurrence of promotion events
 2347   + Medium: pengine: Implememt node health based on a patch from Mark Hamzy
 2348   + Medium: Tools: Add examples to help text outputs
 2349   + Medium: Tools: crm: catch syntax errors for configure load
 2350   + Medium: Tools: crm: implement erasing nodes in configure erase
 2351   + Medium: Tools: crm: work with parents only when managing xml objects
 2352   + Medium: Tools: crm_mon - Add option to run custom notification program on resource operations (Patch by Dominik Klein)
 2353   + Medium: Tools: crm_resource - Allow --cleanup to function on complex resources and cluster-wide
 2354   + Medium: Tools: haresource2cib.py - Patch from horms to fix conversion error
 2355   + Medium: Tools: Include stack information in crm_mon output
 2356   + Medium: Tools: Two new options (--stack,--constraints) to crm_resource for querying how a resource is configured
 2357 
 2358 * Wed Apr 08 2009 Andrew Beekhof <abeekhof@suse.de> - 1.0.3
 2359 - Update source tarball to revision: b133b3f19797 (stable-1.0) tip
 2360 - Statistics:
 2361     Changesets:      383
 2362     Diff:            329 files changed, 15471 insertions(+), 15119 deletions(-)
 2363 - Changes since Pacemaker-1.0.2
 2364   + Added tag SLE11-HAE-GMC for changeset 9196be9830c2
 2365   + ais plugin: Fix quorum calculation (bnc#487003)
 2366   + ais: Another memory fix leak in error path
 2367   + ais: Bug bnc#482847, bnc#482905 - Force a clean exit of OpenAIS once Pacemaker has finished unloading
 2368   + ais: Bug bnc#486858 - Fix update_member() to prevent spamming clients with membership events containing no changes
 2369   + ais: Centralize all quorum calculations in the ais plugin and allow expected votes to be configured int he cib
 2370   + ais: Correctly handle a return value of zero from openais_dispatch_recv()
 2371   + ais: Disable logging to a file
 2372   + ais: Fix memory leak in error path
 2373   + ais: IPC messages are only in scope until a response is sent
 2374   + All signal handlers used with CL_SIGNAL() need to be as minimal as possible
 2375   + cib: Bug bnc#482885 - Simplify CIB disk-writes to prevent data loss.  Required a change to the backup filename format
 2376   + cib: crmd: Revert part of 9782ab035003.  Complex shutdown routines need G_main_add_SignalHandler to avoid race coditions
 2377   + crm: Avoid infinite loop during crm configure edit (bnc#480327)
 2378   + crmd: Avoid a race condition by waiting for the attrd update to trigger a transition automatically
 2379   + crmd: Bug bnc#480977 - Prevent extra, partial, shutdown when a node restarts too quickly
 2380   + crmd: Bug bnc#480977 - Prevent extra, partial, shutdown when a node restarts too quickly (verified)
 2381   + crmd: Bug bnc#489063 - Ensure the DC is always unset after we 'lose' an election
 2382   + crmd: Bug BSC#479543 - Correctly find the migration source for timed out migrate_from actions
 2383   + crmd: Call crm_peer_init() before we start the FSA - prevents a race condition when used with Heartbeat
 2384   + crmd: Erasing the status section should not be forced to the local node
 2385   + crmd: Fix memory leak in cib notication processing code
 2386   + crmd: Fix memory leak in transition graph processing
 2387   + crmd: Fix memory leaks found by valgrind
 2388   + crmd: More memory leaks fixes found by valgrind
 2389   + fencing: stonithd: is_heartbeat_cluster is a no-no if there is no heartbeat support
 2390   + pengine: Bug bnc#466788 - Exclude nodes that can not run resources
 2391   + pengine: Bug bnc#466788 - Make colocation based on node attributes work
 2392   + pengine: Bug BNC#478687 - Do not crash when clone-max is 0
 2393   + pengine: Bug bnc#488721 - Fix id-ref expansion for clones, the doc-root for clone children is not the cib root
 2394   + pengine: Bug bnc#490418 - Correctly determine node state for nodes wishing to be terminated
 2395   + pengine: Bug LF#2087 - Correctly parse the state of anonymous clones that have multiple instances on a given node
 2396   + pengine: Bug lf#2089 - Meta attributes are not inherited by clone children
 2397   + pengine: Bug lf#2091 - Correctly restart modified resources that were found active by a probe
 2398   + pengine: Bug lf#2094 - Fix probe ordering for cloned groups
 2399   + pengine: Bug LF:2075 - Fix large pingd memory leaks
 2400   + pengine: Correctly attach orphaned clone children to their parent
 2401   + pengine: Correctly handle terminate node attributes that are set to the output from time()
 2402   + pengine: Ensure orphaned clone members are hooked up to the parent when clone-max=0
 2403   + pengine: Fix memory leak in LogActions
 2404   + pengine: Fix the determination of whether a group is active
 2405   + pengine: Look up the correct promotion preference for anonymous masters
 2406   + pengine: Simplify handling of start failures by changing the default migration-threshold to INFINITY
 2407   + pengine: The ordered option for clones no longer causes extra start/stop operations
 2408   + RA: Bug bnc#490641 - Shut down dlm_controld with -TERM instead of -KILL
 2409   + RA: pingd: Set default ping interval to 1 instead of 0 seconds
 2410   + Resources: pingd - Correctly tell the ping daemon to shut down
 2411   + Tools: Bug bnc#483365 - Ensure the command from cluster_test includes a value for --log-facility
 2412   + Tools: cli: fix and improve delete command
 2413   + Tools: crm: add and implement templates
 2414   + Tools: crm: add support for command aliases and some common commands (i.e. cd,exit)
 2415   + Tools: crm: create top configuration nodes if they are missing
 2416   + Tools: crm: fix parsing attributes for rules (broken by the previous changeset)
 2417   + Tools: crm: new ra set of commands
 2418   + Tools: crm: resource agents information management
 2419   + Tools: crm: rsc/op_defaults
 2420   + Tools: crm: support for no value attribute in nvpairs
 2421   + Tools: crm: the new configure monitor command
 2422   + Tools: crm: the new configure node command
 2423   + Tools: crm_mon - Prevent use-of-NULL when summarizing an orphan
 2424   + Tools: hb2openais: create clvmd clone for respawn evmsd in ha.cf
 2425   + Tools: hb2openais: fix a serious recursion bug in xml node processing
 2426   + Tools: hb2openais: fix ocfs2 processing
 2427   + Tools: pingd - prevent double free of getaddrinfo() output in error path
 2428   + Tools: The default re-ping interval for pingd should be 1s not 1ms
 2429   + Medium (bnc#479049): Tools: crm: add validation of resource type for the configure primitive command
 2430   + Medium (bnc#479050): Tools: crm: add help for RA parameters in tab completion
 2431   + Medium (bnc#479050): Tools: crm: add tab completion for primitive params/meta/op
 2432   + Medium (bnc#479050): Tools: crm: reimplement cluster properties completion
 2433   + Medium (bnc#486968): Tools: crm: listnodes function requires no parameters (do not mix completion with other stuff)
 2434   + Medium: ais: Remove the ugly hack for dampening AIS membership changes
 2435   + Medium: cib: Fix memory leaks by using mainloop_add_signal
 2436   + Medium: cib: Move more logging to the debug level (was info)
 2437   + Medium: cib: Overhaul the processing of synchronous replies
 2438   + Medium: Core: Add library functions for instructing the cluster to terminate nodes
 2439   + Medium: crmd: Add new expected-quorum-votes option
 2440   + Medium: crmd: Allow up to 5 retires when an attrd update fails
 2441   + Medium: crmd: Automatically detect and use new values for crm_config options
 2442   + Medium: crmd: Bug bnc#490426 - Escalated shutdowns stall when there are pending resource operations
 2443   + Medium: crmd: Clean up and optimize the DC election algorithm
 2444   + Medium: crmd: Fix memory leak in shutdown
 2445   + Medium: crmd: Fix memory leaks spotted by Valgrind
 2446   + Medium: crmd: Ignore join messages from hosts other than our DC
 2447   + Medium: crmd: Limit the scope of resource updates to the status section
 2448   + Medium: crmd: Prevent the crmd from being respawned if its told to shut down when it did not ask to be
 2449   + Medium: crmd: Re-check the election status after membership events
 2450   + Medium: crmd: Send resource updates via the local CIB during elections
 2451   + Medium: pengine: Bug bnc#491441 - crm_mon does not display operations returning 'uninstalled' correctly
 2452   + Medium: pengine: Bug lf#2101 - For location constraints, role=Slave is equivalent to role=Started
 2453   + Medium: pengine: Clean up the API - removed ->children() and renamed ->find_child() to fine_rsc()
 2454   + Medium: pengine: Compress the display of healthy anonymous clones
 2455   + Medium: pengine: Correctly log the actions for resources that are being recovered
 2456   + Medium: pengine: Determin a promotion score for complex resources
 2457   + Medium: pengine: Ensure clones always have a value for globally-unique
 2458   + Medium: pengine: Prevent orphan clones from being allocated
 2459   + Medium: RA: controld: Return proper exit code for stop op.
 2460   + Medium: Tools: Bug bnc#482558 - Fix logging test in cluster_test
 2461   + Medium: Tools: Bug bnc#482828 - Fix quoting in cluster_test logging setup
 2462   + Medium: Tools: Bug bnc#482840 - Include directory path to CTSlab.py
 2463   + Medium: Tools: crm: add more user input checks
 2464   + Medium: Tools: crm: do not check resource status of we are working with a shadow
 2465   + Medium: Tools: crm: fix id-refs and allow reference to top objects (i.e. primitive)
 2466   + Medium: Tools: crm: ignore comments in the CIB
 2467   + Medium: Tools: crm: multiple column output would not work with small lists
 2468   + Medium: Tools: crm: refuse to delete running resources
 2469   + Medium: Tools: crm: rudimentary if-else for templates
 2470   + Medium: Tools: crm: Start/stop clones via target-role.
 2471   + Medium: Tools: crm_mon - Compress the node status for healthy and offline nodes
 2472   + Medium: Tools: crm_shadow - Return 0/cib_ok when --create-empty succeeds
 2473   + Medium: Tools: crm_shadow - Support -e, the short form of --create-empty
 2474   + Medium: Tools: Make attrd quieter
 2475   + Medium: Tools: pingd - Avoid using various clplumbing functions as they seem to leak
 2476   + Medium: Tools: Reduce pingd logging
 2477 
 2478 * Mon Feb 16 2009 Andrew Beekhof <abeekhof@suse.de> - 1.0.2
 2479 - Update source tarball to revision: d232d19daeb9 (stable-1.0) tip
 2480 - Statistics:
 2481     Changesets:      441
 2482     Diff:            639 files changed, 20871 insertions(+), 21594 deletions(-)
 2483 - Changes since Pacemaker-1.0.1
 2484   + (bnc#450815): Tools: crm cli: do not generate id for the operations tag
 2485   + ais: Add support for the new AIS IPC layer
 2486   + ais: Always set header.error to the correct default: SA_AIS_OK
 2487   + ais: Bug BNC#456243 - Ensure the membership cache always contains an entry for the local node
 2488   + ais: Bug BNC:456208 - Prevent deadlocks by not logging in the child process before exec()
 2489   + ais: By default, disable supprt for the WIP openais IPC patch
 2490   + ais: Detect and handle situations where ais and the crm disagree on the node name
 2491   + ais: Ensure crm_peer_seq is updated after a membership update
 2492   + ais: Make sure all IPC header fields are set to sane defaults
 2493   + ais: Repair and streamline service load now that whitetank startup functions correctly
 2494   + build: create and install doc files
 2495   + cib: Allow clients without mainloop to connect to the cib
 2496   + cib: CID:18 - Fix use-of-NULL in cib_perform_op
 2497   + cib: CID:18 - Repair errors introduced in b5a18704477b - Fix use-of-NULL in cib_perform_op
 2498   + cib: Ensure diffs contain the correct values of admin_epoch
 2499   + cib: Fix four moderately sized memory leaks detected by Valgrind
 2500   + Core: CID:10 - Prevent indexing into an array of schemas with a negative value
 2501   + Core: CID:13 - Fix memory leak in log_data_element
 2502   + Core: CID:15 - Fix memory leak in crm_get_peer
 2503   + Core: CID:6 - Fix use-of-NULL in copy_ha_msg_input
 2504   + Core: Fix crash in the membership code preventing node shutdown
 2505   + Core: Fix more memory leaks foudn by valgrind
 2506   + Core: Prevent unterminated strings after decompression
 2507   + crmd: Bug BNC:467995 - Delay marking STONITH operations complete until STONITH tells us so
 2508   + crmd: Bug LF:1962 - Do not NACK peers because they are not (yet) in our membership.  Just ignore them.
 2509   + crmd: Bug LF:2010 - Ensure fencing cib updates create the node_state entry if needed to preent re-fencing during cluster startup
 2510   + crmd: Correctly handle reconnections to attrd
 2511   + crmd: Ensure updates for lost migrate operations indicate which node it tried to migrating to
 2512   + crmd: If there are no nodes to finalize, start an election.
 2513   + crmd: If there are no nodes to welcome, start an election.
 2514   + crmd: Prevent node attribute loss by detecting attrd disconnections immediately
 2515   + crmd: Prevent node re-probe loops by ensuring mandatory actions always complete
 2516   + pengine: Bug 2005 - Fix startup ordering of cloned stonith groups
 2517   + pengine: Bug 2006 - Correctly reprobe cloned groups
 2518   + pengine: Bug BNC:465484 - Fix the no-quorum-policy=suicide option
 2519   + pengine: Bug LF:1996 - Correctly process disabled monitor operations
 2520   + pengine: CID:19 - Fix use-of-NULL in determine_online_status
 2521   + pengine: Clones now default to globally-unique=false
 2522   + pengine: Correctly calculate the number of available nodes for the clone to use
 2523   + pengine: Only shoot online nodes with no-quorum-policy=suicide
 2524   + pengine: Prevent on-fail settings being ignored after a resource is successfully stopped
 2525   + pengine: Prevent use-of-NULL for failed migrate actions in process_rsc_state()
 2526   + pengine: Remove an optimization for the terminate node attribute that caused the cluster to block indefinitly
 2527   + pengine: Repar the ability to colocate based on node attributes other than uname
 2528   + pengine: Start the correct monitor operation for unmanaged masters
 2529   + stonith: CID:3 - Fix another case of exceptionally poor error handling by the original stonith developers
 2530   + stonith: CID:5 - Checking for NULL and then dereferencing it anyway is an interesting approach to error handling
 2531   + stonithd: Sending IPC to the cluster is a privileged operation
 2532   + stonithd: wrong checks for shmid (0 is a valid id)
 2533   + Tools: attrd - Correctly determine when an attribute has stopped changing and should be committed to the CIB
 2534   + Tools: Bug 2003 - pingd does not correctly detect failures when the interface is down
 2535   + Tools: Bug 2003 - pingd does not correctly handle node-down events on multi-NIC systems
 2536   + Tools: Bug 2021 - pingd does not detect sequence wrapping correctly, incorrectly reports nodes offline
 2537   + Tools: Bug BNC:468066 - Do not use the result of uname() when its no longer in scope
 2538   + Tools: Bug BNC:473265 - crm_resource -L dumps core
 2539   + Tools: Bug LF:2001 - Transient node attributes should be set via attrd
 2540   + Tools: Bug LF:2036 - crm_resource cannot set/get parameters for cloned resources
 2541   + Tools: Bug LF:2046 - Node attribute updates are lost because attrd can take too long to start
 2542   + Tools: Cause the correct clone instance to be failed with crm_resource -F
 2543   + Tools: cluster_test - Allow the user to select a stack and fix CTS invocation
 2544   + Tools: crm cli: allow rename only if the resource is stopped
 2545   + Tools: crm cli: catch system errors on file operations
 2546   + Tools: crm cli: completion for ids in configure
 2547   + Tools: crm cli: drop '-rsc' from attributes for order constraint
 2548   + Tools: crm cli: exit with an appropriate exit code
 2549   + Tools: crm cli: fix wrong order of action and resource in order constraint
 2550   + Tools: crm cli: fox wrong exit code
 2551   + Tools: crm cli: improve handling of cib attributes
 2552   + Tools: crm cli: new command: configure rename
 2553   + Tools: crm cli: new command: configure upgrade
 2554   + Tools: crm cli: new command: node delete
 2555   + Tools: crm cli: prevent key errors on missing cib attributes
 2556   + Tools: crm cli: print long help for help topics
 2557   + Tools: crm cli: return on syntax error when parsing score
 2558   + Tools: crm cli: rsc_location can be without nvpairs
 2559   + Tools: crm cli: short node preference location constraint
 2560   + Tools: crm cli: sometimes, on errors, level would change on single shot use
 2561   + Tools: crm cli: syntax: drop a bunch of commas (remains of help tables conversion)
 2562   + Tools: crm cli: verify user input for sanity
 2563   + Tools: crm: find expressions within rules (do not always skip xml nodes due to used id)
 2564   + Tools: crm_master should not define a set id now that attrd is used.  Defining one can break lookups
 2565   + Tools: crm_mon Use the OID assigned to the project by IANA for SNMP traps
 2566   + Medium (bnc#445622): Tools: crm cli: improve the node show command and drop node status
 2567   + Medium (LF 2009): stonithd: improve timeouts for remote fencing
 2568   + Medium: ais: Allow dead peers to be removed from membership calculations
 2569   + Medium: ais: Pass node deletion events on to clients
 2570   + Medium: ais: Sanitize ipc usage
 2571   + Medium: ais: Supply the node uname in addtion to the id
 2572   + Medium: Build: Clean up configure to ensure NON_FATAL_CFLAGS is consistent with CFLAGS (ie. includes -g)
 2573   + Medium: Build: Install cluster_test
 2574   + Medium: Build: Use more restrictive CFLAGS and fix the resulting errors
 2575   + Medium: cib: CID:20 - Fix potential use-after-free in cib_native_signon
 2576   + Medium: Core: Bug BNC:474727 - Set a maximum time to wait for IPC messages
 2577   + Medium: Core: CID:12 - Fix memory leak in decode_transition_magic error path
 2578   + Medium: Core: CID:14 - Fix memory leak in calculate_xml_digest error path
 2579   + Medium: Core: CID:16 - Fix memory leak in date_to_string error path
 2580   + Medium: Core: Try to track down the cause of XML parsing errors
 2581   + Medium: crmd: Bug BNC:472473 - Do not wait excessive amounts of time for lost actions
 2582   + Medium: crmd: Bug BNC:472473 - Reduce the transition timeout to action_timeout+network_delay
 2583   + Medium: crmd: Do not fast-track the processing of LRM refreshes when there are pending actions.
 2584   + Medium: crmd: do_dc_join_filter_offer - Check the 'join' message is for the current instance before deciding to NACK peers
 2585   + Medium: crmd: Find option values without having to do a config upgrade
 2586   + Medium: crmd: Implement shutdown using a transient node attribute
 2587   + Medium: crmd: Update the crmd options to use dashes instead of underscores
 2588   + Medium: cts: Add 'cluster reattach' to the suite of automated regression tests
 2589   + Medium: cts: cluster_test - Make some usability enhancements
 2590   + Medium: CTS: cluster_test - suggest a valid port number
 2591   + Medium: CTS: Fix python import order
 2592   + Medium: cts: Implement an automated SplitBrain test
 2593   + Medium: CTS: Remove references to deleted classes
 2594   + Medium: Extra: Resources - Use HA_VARRUN instead of HA_RSCTMP for state files as Heartbeat removes HA_RSCTMP at startup
 2595   + Medium: HB: Bug 1933 - Fake crmd_client_status_callback() calls because HB does not provide them for already running processes
 2596   + Medium: pengine: CID:17 - Fix memory leak in find_actions_by_task error path
 2597   + Medium: pengine: CID:7,8 - Prevent hypothetical use-of-NULL in LogActions
 2598   + Medium: pengine: Defer logging the actions performed on a resource until we have processed ordering constraints
 2599   + Medium: pengine: Remove the symmetrical attribute of colocation constraints
 2600   + Medium: Resources: pingd - fix the meta defaults
 2601   + Medium: Resources: Stateful - Add missing meta defaults
 2602   + Medium: stonithd: exit if we the pid file cannot be locked
 2603   + Medium: Tools: Allow attrd clients to specify the ID the attribute should be created with
 2604   + Medium: Tools: attrd - Allow attribute updates to be performed from a hosts peer
 2605   + Medium: Tools: Bug LF:1994 - Clean up crm_verify return codes
 2606   + Medium: Tools: Change the pingd defaults to ping hosts once every second (instead of 5 times every 10 seconds)
 2607   + Medium: Tools: cibmin - Detect resource operations with a view to providing email/snmp/cim notification
 2608   + Medium: Tools: crm cli: add back symmetrical for order constraints
 2609   + Medium: Tools: crm cli: generate role in location when converting from xml
 2610   + Medium: Tools: crm cli: handle shlex exceptions
 2611   + Medium: Tools: crm cli: keep order of help topics
 2612   + Medium: Tools: crm cli: refine completion for ids in configure
 2613   + Medium: Tools: crm cli: replace inf with INFINITY
 2614   + Medium: Tools: crm cli: streamline cib load and parsing
 2615   + Medium: Tools: crm cli: supply provider only for ocf class primitives
 2616   + Medium: Tools: crm_mon - Add support for sending mail notifications of resource events
 2617   + Medium: Tools: crm_mon - Include the DC version in status summary
 2618   + Medium: Tools: crm_mon - Sanitize startup and option processing
 2619   + Medium: Tools: crm_mon - switch to event-driven updates and add support for sending snmp traps
 2620   + Medium: Tools: crm_shadow - Replace the --locate option with the saner --edit
 2621   + Medium: Tools: hb2openais: do not remove Evmsd resources, but replace them with clvmd
 2622   + Medium: Tools: hb2openais: replace crmadmin with crm_mon
 2623   + Medium: Tools: hb2openais: replace the lsb class with ocf for o2cb
 2624   + Medium: Tools: hb2openais: reuse code
 2625   + Medium: Tools: LF:2029 - Display an error if crm_resource is used to reset the operation history of non-primitive resources
 2626   + Medium: Tools: Make pingd resilient to attrd failures
 2627   + Medium: Tools: pingd - fix the command line switches
 2628   + Medium: Tools: Rename ccm_tool to crm_node
 2629 
 2630 * Tue Nov 18 2008 Andrew Beekhof <abeekhof@suse.de> - 1.0.1
 2631 - Update source tarball to revision: 6fc5ce8302ab (stable-1.0) tip
 2632 - Statistics:
 2633     Changesets:      170
 2634     Diff:            816 files changed, 7633 insertions(+), 6286 deletions(-)
 2635 - Changes since Pacemaker-1.0.1
 2636   + ais: Allow the crmd to get callbacks whenever a node state changes
 2637   + ais: Create an option for starting the mgmtd daemon automatically
 2638   + ais: Ensure HA_RSCTMP exists for use by resource agents
 2639   + ais: Hook up the openais.conf config logging options
 2640   + ais: Zero out the PID of disconnecting clients
 2641   + cib: Ensure global updates cause a disk write when appropriate
 2642   + Core: Add an extra snaity check to getXpathResults() to prevent segfaults
 2643   + Core: Do not redefine __FUNCTION__ unnecessarily
 2644   + Core: Repair the ability to have comments in the configuration
 2645   + crmd: Bug:1975 - crmd should wait indefinitely for stonith operations to complete
 2646   + crmd: Ensure PE processing does not occur for all error cases in do_pe_invoke_callback
 2647   + crmd: Requests to the CIB should cause any prior PE calculations to be ignored
 2648   + heartbeat: Wait for membership 'up' events before removing stale node status data
 2649   + pengine: Bug LF:1988 - Ensure recurring operations always have the correct target-rc set
 2650   + pengine: Bug LF:1988 - For unmanaged resources we need to skip the usual can_run_resources() checks
 2651   + pengine: Ensure the terminate node attribute is handled correctly
 2652   + pengine: Fix optional colocation
 2653   + pengine: Improve up the detection of 'new' nodes joining the cluster
 2654   + pengine: Prevent assert failures in master_color() by ensuring unmanaged masters are always reallocated to their current location
 2655   + Tools: crm cli: parser: return False on syntax error and None for comments
 2656   + Tools: crm cli: unify template and edit commands
 2657   + Tools: crm_shadow - Show more line number information after validation failures
 2658   + Tools: hb2openais: add option to upgrade the CIB to v3.0
 2659   + Tools: hb2openais: add U option to getopts and update usage
 2660   + Tools: hb2openais: backup improved and multiple fixes
 2661   + Tools: hb2openais: fix class/provider reversal
 2662   + Tools: hb2openais: fix testing
 2663   + Tools: hb2openais: move the CIB update to the end
 2664   + Tools: hb2openais: update logging and set logfile appropriately
 2665   + Tools: LF:1969 - Attrd never sets any properties in the cib
 2666   + Tools: Make attrd functional on OpenAIS
 2667   + Medium: ais: Hook up the options for specifying the expected number of nodes and total quorum votes
 2668   + Medium: ais: Look for pacemaker options inside the service block with 'name: pacemaker' instead of creating an addtional configuration block
 2669   + Medium: ais: Provide better feedback when nodes change nodeids (in openais.conf)
 2670   + Medium: cib: Always store cib contents on disk with num_updates=0
 2671   + Medium: cib: Ensure remote access ports are cleaned up on shutdown
 2672   + Medium: crmd: Detect deleted resource operations automatically
 2673   + Medium: crmd: Erase a nodes resource operations and transient attributes after a successful STONITH
 2674   + Medium: crmd: Find a more appropriate place to update quorum and refresh attrd attributes
 2675   + Medium: crmd: Fix the handling of unexpected PE exits to ensure the current CIB is stored
 2676   + Medium: crmd: Fix the recording of pending operations in the CIB
 2677   + Medium: crmd: Initiate an attrd refresh _after_ the status section has been fully repopulated
 2678   + Medium: crmd: Only the DC should update quorum in an openais cluster
 2679   + Medium: Ensure meta attributes are used consistantly
 2680   + Medium: pengine: Allow group and clone level resource attributes
 2681   + Medium: pengine: Bug N:437719 - Ensure scores from colocated resources count when allocating groups
 2682   + Medium: pengine: Prevent lsb scripts from being used in globally unique clones
 2683   + Medium: pengine: Make a best-effort guess at a migration threshold for people with 0.6 configs
 2684   + Medium: Resources: controld - ensure we are part of a clone with globally_unique=false
 2685   + Medium: Tools: attrd - Automatically refresh all attributes after a CIB replace operation
 2686   + Medium: Tools: Bug LF:1985 - crm_mon - Correctly process failed cib queries to allow reconnection after cluster restarts
 2687   + Medium: Tools: Bug LF:1987 - crm_verify incorrectly warns of configuration upgrades for the most recent version
 2688   + Medium: Tools: crm (bnc#441028): check for key error in attributes management
 2689   + Medium: Tools: crm_mon - display the meaning of the operation rc code instead of the status
 2690   + Medium: Tools: crm_mon - Fix the display of timing data
 2691   + Medium: Tools: crm_verify - check that we are being asked to validate a complete config
 2692   + Medium: xml: Relax the restriction on the contents of rsc_locaiton.node
 2693 
 2694 * Thu Oct 16 2008 Andrew Beekhof <abeekhof@suse.de> - 1.0.0
 2695 - Update source tarball to revision: 388654dfef8f tip
 2696 - Statistics:
 2697     Changesets:      261
 2698     Diff:            3021 files changed, 244985 insertions(+), 111596 deletions(-)
 2699 - Changes since f805e1b30103
 2700   + add the crm cli program
 2701   + ais: Move the service id definition to a common location and make sure it is always used
 2702   + build: rename hb2openais.sh to .in and replace paths with vars
 2703   + cib: Implement --create for crm_shadow
 2704   + cib: Remove dead files
 2705   + Core: Allow the expected number of quorum votes to be configrable
 2706   + Core: cl_malloc and friends were removed from Heartbeat
 2707   + Core: Only call xmlCleanupParser() if we parsed anything.  Doing so unconditionally seems to cause a segfault
 2708   + hb2openais.sh: improve pingd handling; several bugs fixed
 2709   + hb2openais: fix clone creation; replace EVMS strings
 2710   + new hb2openais.sh conversion script
 2711   + pengine: Bug LF:1950 - Ensure the current values for all notification variables are always set (even if empty)
 2712   + pengine: Bug LF:1955 - Ensure unmanaged masters are unconditionally repromoted to ensure they are monitored correctly.
 2713   + pengine: Bug LF:1955 - Fix another case of filtering causing unmanaged master failures
 2714   + pengine: Bug LF:1955 - Umanaged mode prevents master resources from being allocated correctly
 2715   + pengine: Bug N:420538 - Anit-colocation caused a positive node preference
 2716   + pengine: Correctly handle unmanaged resources to prevent them from being started elsewhere
 2717   + pengine: crm_resource - Fix the --migrate command
 2718   + pengine: MAke stonith-enabled default to true and warn if no STONITH resources are found
 2719   + pengine: Make sure orphaned clone children are created correctly
 2720   + pengine: Monitors for unmanaged resources do not need to wait for start/promote/demote actions to complete
 2721   + stonithd (LF 1951): fix remote stonith operations
 2722   + stonithd: fix handling of timeouts
 2723   + stonithd: fix logic for stonith resource priorities
 2724   + stonithd: implement the fence-timeout instance attribute
 2725   + stonithd: initialize value before reading fence-timeout
 2726   + stonithd: set timeouts for fencing ops to the timeout of the start op
 2727   + stonithd: stonith rsc priorities (new feature)
 2728   + Tools: Add hb2openais - a tool for upgrading a Heartbeat cluster to use OpenAIS instead
 2729   + Tools: crm_verify - clean up the upgrade logic to prevent crash on invalid configurations
 2730   + Tools: Make pingd functional on Linux
 2731   + Update version numbers for 1.0 candidates
 2732   + Medium: ais: Add support for a synchronous call to retrieve the nodes nodeid
 2733   + Medium: ais: Use the agreed service number
 2734   + Medium: Build: Reliably detect heartbeat libraries during configure
 2735   + Medium: Build: Supply prototypes for libreplace functions when needed
 2736   + Medium: Build: Teach configure how to find corosync
 2737   + Medium: Core: Provide better feedback if Pacemaker is started by a stack it does not support
 2738   + Medium: crmd: Avoid calling GHashTable functions with NULL
 2739   + Medium: crmd: Delay raising I_ERROR when the PE exits until we have had a chance to save the current CIB
 2740   + Medium: crmd: Hook up the stonith-timeout option to stonithd
 2741   + Medium: crmd: Prevent potential use-of-NULL in global_timer_callback
 2742   + Medium: crmd: Rationalize the logging of graph aborts
 2743   + Medium: pengine: Add a stonith_timeout option and remove new options that are better set in rsc_defaults
 2744   + Medium: pengine: Allow external entities to ask for a node to be shot by creating a terminate=true transient node attribute
 2745   + Medium: pengine: Bug LF:1950 - Notifications do not contain all documented resource state fields
 2746   + Medium: pengine: Bug N:417585 - Do not restart group children whos individual score drops below zero
 2747   + Medium: pengine: Detect clients that disconnect before receiving their reply
 2748   + Medium: pengine: Implement a true maintenance mode
 2749   + Medium: pengine: Implement on-fail=standby for NTT.  Derived from a patch by Satomi TANIGUCHI
 2750   + Medium: pengine: Print the correct message when stonith is disabled
 2751   + Medium: pengine: ptest - check the input is valid before proceeding
 2752   + Medium: pengine: Revert group stickiness to the 'old way'
 2753   + Medium: pengine: Use the correct attribute for action 'requires' (was prereq)
 2754   + Medium: stonithd: Fix compilation without full heartbeat install
 2755   + Medium: stonithd: exit with better code on empty host list
 2756   + Medium: tools: Add a new regression test for CLI tools
 2757   + Medium: tools: crm_resource - return with non-zero when a resource migration command is invalid
 2758   + Medium: tools: crm_shadow - Allow the admin to start with an empty CIB (and no cluster connection)
 2759   + Medium: xml: pacemaker-0.7 is now an alias for the 1.0 schema
 2760 
 2761 * Mon Sep 22 2008 Andrew Beekhof <abeekhof@suse.de> - 0.7.3
 2762 - Update source tarball to revision: 33e677ab7764+ tip
 2763 - Statistics:
 2764     Changesets:      133
 2765     Diff:            89 files changed, 7492 insertions(+), 1125 deletions(-)
 2766 - Changes since f805e1b30103
 2767   + Tools: add the crm cli program
 2768   + Core: cl_malloc and friends were removed from Heartbeat
 2769   + Core: Only call xmlCleanupParser() if we parsed anything.  Doing so unconditionally seems to cause a segfault
 2770   + new hb2openais.sh conversion script
 2771   + pengine: Bug LF:1950 - Ensure the current values for all notification variables are always set (even if empty)
 2772   + pengine: Bug LF:1955 - Ensure unmanaged masters are unconditionally repromoted to ensure they are monitored correctly.
 2773   + pengine: Bug LF:1955 - Fix another case of filtering causing unmanaged master failures
 2774   + pengine: Bug LF:1955 - Umanaged mode prevents master resources from being allocated correctly
 2775   + pengine: Bug N:420538 - Anit-colocation caused a positive node preference
 2776   + pengine: Correctly handle unmanaged resources to prevent them from being started elsewhere
 2777   + pengine: crm_resource - Fix the --migrate command
 2778   + pengine: MAke stonith-enabled default to true and warn if no STONITH resources are found
 2779   + pengine: Make sure orphaned clone children are created correctly
 2780   + pengine: Monitors for unmanaged resources do not need to wait for start/promote/demote actions to complete
 2781   + stonithd (LF 1951): fix remote stonith operations
 2782   + Tools: crm_verify - clean up the upgrade logic to prevent crash on invalid configurations
 2783   + Medium: ais: Add support for a synchronous call to retrieve the nodes nodeid
 2784   + Medium: ais: Use the agreed service number
 2785   + Medium: pengine: Allow external entities to ask for a node to be shot by creating a terminate=true transient node attribute
 2786   + Medium: pengine: Bug LF:1950 - Notifications do not contain all documented resource state fields
 2787   + Medium: pengine: Bug N:417585 - Do not restart group children whos individual score drops below zero
 2788   + Medium: pengine: Implement a true maintenance mode
 2789   + Medium: pengine: Print the correct message when stonith is disabled
 2790   + Medium: stonithd: exit with better code on empty host list
 2791   + Medium: xml: pacemaker-0.7 is now an alias for the 1.0 schema
 2792 
 2793 * Wed Aug 20 2008 Andrew Beekhof <abeekhof@suse.de> - 0.7.1
 2794 - Update source tarball to revision: f805e1b30103+ tip
 2795 - Statistics:
 2796     Changesets:      184
 2797     Diff:            513 files changed, 43408 insertions(+), 43783 deletions(-)
 2798 - Changes since 0.7.0-19
 2799   + Fix compilation when GNUTLS isn't found
 2800   + admin: Fix use-after-free in crm_mon
 2801   + Build: Remove testing code that prevented heartbeat-only builds
 2802   + cib: Use single quotes so that the xpath queries for nvpairs will succeed
 2803   + crmd: Always connect to stonithd when the TE starts and ensure we notice if it dies
 2804   + crmd: Correctly handle a dead PE process
 2805   + crmd: Make sure async-failures cause the failcount to be incremented
 2806   + pengine: Bug LF:1941 - Handle failed clone instance probes when clone-max < #nodes
 2807   + pengine: Parse resource ordering sets correctly
 2808   + pengine: Prevent use-of-NULL - order->rsc_rh will not always be non-NULL
 2809   + pengine: Unpack colocation sets correctly
 2810   + Tools: crm_mon - Prevent use-of-NULL for orphaned resources
 2811   + Medium: ais: Add support for a synchronous call to retrieve the nodes nodeid
 2812   + Medium: ais: Allow transient clients to receive membership updates
 2813   + Medium: ais: Avoid double-free in error path
 2814   + Medium: ais: Include in the mebership nodes for which we have not determined their hostname
 2815   + Medium: ais: Spawn the PE from the ais plugin instead of the crmd
 2816   + Medium: cib: By default, new configurations use the latest schema
 2817   + Medium: cib: Clean up the CIB if it was already disconnected
 2818   + Medium: cib: Only increment num_updates if something actually changed
 2819   + Medium: cib: Prevent use-after-free in client after abnormal termination of the CIB
 2820   + Medium: Core: Fix memory leak in xpath searches
 2821   + Medium: Core: Get more details regarding parser errors
 2822   + Medium: Core: Repair expand_plus_plus - do not call char2score on unexpanded values
 2823   + Medium: Core: Switch to the libxml2 parser - its significantly faster
 2824   + Medium: Core: Use a libxml2 library function for xml -> text conversion
 2825   + Medium: crmd: Asynchronous failure actions have no parameters
 2826   + Medium: crmd: Avoid calling glib functions with NULL
 2827   + Medium: crmd: Do not allow an election to promote a node from S_STARTING
 2828   + Medium: crmd: Do not vote if we have not completed the local startup
 2829   + Medium: crmd: Fix te_update_diff() now that get_object_root() functions differently
 2830   + Medium: crmd: Fix the lrmd xpath expressions to not contain quotes
 2831   + Medium: crmd: If we get a join offer during an election, better restart the election
 2832   + Medium: crmd: No further processing is needed when using the LRMs API call for failing resources
 2833   + Medium: crmd: Only update have-quorum if the value changed
 2834   + Medium: crmd: Repair the input validation logic in do_te_invoke
 2835   + Medium: cts: CIBs can no longer contain comments
 2836   + Medium: cts: Enable a bunch of tests that were incorrectly disabled
 2837   + Medium: cts: The libxml2 parser wont allow v1 resources to use integers as parameter names
 2838   + Medium: Do not use the cluster UID and GID directly.  Look them up based on the configured value of HA_CCMUSER
 2839   + Medium: Fix compilation when heartbeat is not supported
 2840   + Medium: pengine: Allow groups to be involved in optional ordering constraints
 2841   + Medium: pengine: Allow sets of operations to be reused by multiple resources
 2842   + Medium: pengine: Bug LF:1941 - Mark extra clone instances as orphans and do not show inactive ones
 2843   + Medium: pengine: Determin the correct migration-threshold during resource expansion
 2844   + Medium: pengine: Implement no-quorum-policy=suicide (FATE #303619)
 2845   + Medium: pengine: Clean up resources after stopping old copies of the PE
 2846   + Medium: pengine: Teach the PE how to stop old copies of itself
 2847   + Medium: Tools: Backport hb_report updates
 2848   + Medium: Tools: cib_shadow - On create, spawn a new shell with CIB_shadow and PS1 set accordingly
 2849   + Medium: Tools: Rename cib_shadow to crm_shadow
 2850 
 2851 * Fri Jul 18 2008 Andrew Beekhof <abeekhof@suse.de> - 0.7.0-19
 2852 - Update source tarball to revision: 007c3a1c50f5 (unstable) tip
 2853 - Statistics:
 2854     Changesets:      108
 2855     Diff:            216 files changed, 4632 insertions(+), 4173 deletions(-)
 2856 - Changes added since unstable-0.7
 2857   + admin: Fix use-after-free in crm_mon
 2858   + ais: Change the tag for the ais plugin to "pacemaker" (used in openais.conf)
 2859   + ais: Log terminated processes as an error
 2860   + cib: Performance - Reorganize things to avoid calculating the XML diff twice
 2861   + pengine: Bug LF:1941 - Handle failed clone instance probes when clone-max < #nodes
 2862   + pengine: Fix memory leak in action2xml
 2863   + pengine: Make OCF_ERR_ARGS a node-level error rather than a cluster-level one
 2864   + pengine: Properly handle clones that are not installed on all nodes
 2865   + Medium: admin: cibadmin - Show any validation errors if the upgrade failed
 2866   + Medium: admin: cib_shadow - Implement --locate to display the underlying filename
 2867   + Medium: admin: cib_shadow - Implement a --diff option
 2868   + Medium: admin: cib_shadow - Implement a --switch option
 2869   + Medium: admin: crm_resource - create more compact constraints that do not use lifetime (which is deprecated)
 2870   + Medium: ais: Approximate born_on for OpenAIS based clusters
 2871   + Medium: cib: Remove do_id_check, it is a poor substitute for ID validation by a schema
 2872   + Medium: cib: Skip construction of pre-notify messages if no-one wants one
 2873   + Medium: Core: Attempt to streamline some key functions to increase performance
 2874   + Medium: Core: Clean up XML parser after validation
 2875   + Medium: crmd: Detect and optimize the CRMs behavior when processing diffs of an LRM refresh
 2876   + Medium: Fix memory leaks when resetting the name of an XML object
 2877   + Medium: pengine: Prefer the current location if it is one of a group of nodes with the same (highest) score
 2878 
 2879 * Wed Jun 25 2008 Andrew Beekhof <abeekhof@suse.de> - 0.7.0
 2880 - Update source tarball to revision: bde0c7db74fb tip
 2881 - Statistics:
 2882     Changesets:      439
 2883     Diff:            676 files changed, 41310 insertions(+), 52071 deletions(-)
 2884 - Changes added since stable-0.6
 2885   + A new tool for setting up and invoking CTS
 2886   + Admin: All tools now use --node (-N) for specifying node unames
 2887   + Admin: All tools now use --xml-file (-x) and --xml-text (-X) for specifying where to find XML blobs
 2888   + cib: Cleanup the API - remove redundant input fields
 2889   + cib: Implement CIB_shadow - a facility for making and testing changes before uploading them to the cluster
 2890   + cib: Make registering per-op callbacks an API call and renamed (for clarity) the API call for requesting notifications
 2891   + Core: Add a facility for automatically upgrading old configurations
 2892   + Core: Adopt libxml2 as the XML processing library - all external clients need to be recompiled
 2893   + Core: Allow sending TLS messages larger than the MTU
 2894   + Core: Fix parsing of time-only ISO dates
 2895   + Core: Smarter handling of XML values containing quotes
 2896   + Core: XML memory corruption - catch, and handle, cases where we are overwriting an attribute value with itself
 2897   + Core: The xml ID type does not allow UUIDs that start with a number
 2898   + Core: Implement XPath based versions of query/delete/replace/modify
 2899   + Core: Remove some HA2.0.(3,4) compatibility code
 2900   + crmd: Overhaul the detection of nodes that are starting vs. failed
 2901   + pengine: Bug LF:1459 - Allow failures to expire
 2902   + pengine: Have the PE do non-persistent configuration upgrades before performing calculations
 2903   + pengine: Replace failure-stickiness with a simple 'migration-threshold'
 2904   + tengine: Simplify the design by folding the tengine process into the crmd
 2905   + Medium: Admin: Bug LF:1438 - Allow the list of all/active resource operations to be queried by crm_resource
 2906   + Medium: Admin: Bug LF:1708 - crm_resource should print a warning if an attribute is already set as a meta attribute
 2907   + Medium: Admin: Bug LF:1883 - crm_mon should display fail-count and operation history
 2908   + Medium: Admin: Bug LF:1883 - crm_mon should display operation timing data
 2909   + Medium: Admin: Bug N:371785 - crm_resource -C does not also clean up fail-count attributes
 2910   + Medium: Admin: crm_mon - include timing data for failed actions
 2911   + Medium: ais: Read options from the environment since objdb is not completely usable yet
 2912   + Medium: cib: Add sections for op_defaults and rsc_defaults
 2913   + Medium: cib: Better matching notification callbacks (for detecting duplicates and removal)
 2914   + Medium: cib: Bug LF:1348 - Allow rules and attribute sets to be referenced for use in other objects
 2915   + Medium: cib: BUG LF:1918 - By default, all cib calls now timeout after 30s
 2916   + Medium: cib: Detect updates that decrease the version tuple
 2917   + Medium: cib: Implement a client-side operation timeout - Requires LHA update
 2918   + Medium: cib: Implement callbacks and async notifications for remote connections
 2919   + Medium: cib: Make cib->cmds->update() an alias for modify at the API level (also implemented in cibadmin)
 2920   + Medium: cib: Mark the CIB as disconnected if the IPC connection is terminated
 2921   + Medium: cib: New call option 'cib_can_create' which can be passed to modify actions - allows the object to be created if it does not exist yet
 2922   + Medium: cib: Reimplement get|set|delete attributes using XPath
 2923   + Medium: cib: Remove some useless parts of the API
 2924   + Medium: cib: Remove the 'attributes' scaffolding from the new format
 2925   + Medium: cib: Implement the ability for clients to connect to remote servers
 2926   + Medium: Core: Add support for validating xml against RelaxNG schemas
 2927   + Medium: Core: Allow more than one item to be modified/deleted in XPath based operations
 2928   + Medium: Core: Fix the sort_pairs function for creating sorted xml objects
 2929   + Medium: Core: iso8601 - Implement subtract_duration and fix subtract_time
 2930   + Medium: Core: Reduce the amount of xml copying
 2931   + Medium: Core: Support value='value+=N' XML updates (in addtion to value='value++')
 2932   + Medium: crmd: Add support for lrm_ops->fail_rsc if its available
 2933   + Medium: crmd: HB - watch link status for node leaving events
 2934   + Medium: crmd: Bug LF:1924 - Improved handling of lrmd disconnects and shutdowns
 2935   + Medium: crmd: Do not wait for actions with a start_delay over 5 minutes. Confirm them immediately
 2936   + Medium: pengine: Bug LF:1328 - Do not fencing nodes in clusters without managed resources
 2937   + Medium: pengine: Bug LF:1461 - Give transient node attributes (in <status/>) preference over persistent ones (in <nodes/>)
 2938   + Medium: pengine: Bug LF:1884, Bug LF:1885 - Implement N:M ordering and colocation constraints
 2939   + Medium: pengine: Bug LF:1886 - Create a resource and operation 'defaults' config section
 2940   + Medium: pengine: Bug LF:1892 - Allow recurring actions to be triggered at known times
 2941   + Medium: pengine: Bug LF:1926 - Probes should complete before stop actions are invoked
 2942   + Medium: pengine: Fix the standby when its set as a transient attribute
 2943   + Medium: pengine: Implement a global 'stop-all-resources' option
 2944   + Medium: pengine: Implement cibpipe, a tool for performing/simulating config changes "offline"
 2945   + Medium: pengine: We do not allow colocation with specific clone instances
 2946   + Medium: Tools: pingd - Implement a stack-independent version of pingd
 2947   + Medium: xml: Ship an xslt for upgrading from 0.6 to 0.7
 2948 
 2949 * Thu Jun 19 2008 Andrew Beekhof <abeekhof@suse.de> - 0.6.5
 2950 - Update source tarball to revision: b9fe723d1ac5 tip
 2951 - Statistics:
 2952     Changesets:      48
 2953     Diff:            37 files changed, 1204 insertions(+), 234 deletions(-)
 2954 - Changes since Pacemaker-0.6.4
 2955   + Admin: Repair the ability to delete failcounts
 2956   + ais: Audit IPC handling between the AIS plugin and CRM processes
 2957   + ais: Have the plugin create needed /var/lib directories
 2958   + ais: Make sure the sync and async connections are assigned correctly (not swapped)
 2959   + cib: Correctly detect configuration changes - num_updates does not count
 2960   + pengine: Apply stickiness values to the whole group, not the individual resources
 2961   + pengine: Bug N:385265 - Ensure groups are migrated instead of remaining partially active on the current node
 2962   + pengine: Bug N:396293 - Enforce mandatory group restarts due to ordering constraints
 2963   + pengine: Correctly recover master instances found active on more than one node
 2964   + pengine: Fix memory leaks reported by Valgrind
 2965   + Medium: Admin: crm_mon - Misc improvements from Satomi Taniguchi
 2966   + Medium: Bug LF:1900 - Resource stickiness should not allow placement in asynchronous clusters
 2967   + Medium: crmd: Ensure joins are completed promptly when a node taking part dies
 2968   + Medium: pengine: Avoid clone instance shuffling in more cases
 2969   + Medium: pengine: Bug LF:1906 - Remove an optimization in native_merge_weights() causing group scores to behave eratically
 2970   + Medium: pengine: Make use of target_rc data to correctly process resource operations
 2971   + Medium: pengine: Prevent a possible use of NULL in sort_clone_instance()
 2972   + Medium: tengine: Include target rc in the transition key - used to correctly determin operation failure
 2973 
 2974 * Thu May 22 2008 Andrew Beekhof <abeekhof@suse.de> - 0.6.4
 2975 - Update source tarball to revision: 226d8e356924 tip
 2976 - Statistics:
 2977     Changesets:       55
 2978     Diff:             199 files changed, 7103 insertions(+), 12378 deletions(-)
 2979 - Changes since Pacemaker-0.6.3
 2980   + crmd: Bug LF:1881 LF:1882 - Overhaul the logic for operation cancelation and deletion
 2981   + crmd: Bug LF:1894 - Make sure cancelled recurring operations are cleaned out from the CIB
 2982   + pengine: Bug N:387749 - Colocation with clones causes unnecessary clone instance shuffling
 2983   + pengine: Ensure 'master' monitor actions are cancelled _before_ we demote the resource
 2984   + pengine: Fix assert failure leading to core dump - make sure variable is properly initialized
 2985   + pengine: Make sure 'slave' monitoring happens after the resource has been demoted
 2986   + pengine: Prevent failure stickiness underflows (where too many failures become a _positive_ preference)
 2987   + Medium: Admin: crm_mon - Only complain if the output file could not be opened
 2988   + Medium: Common: filter_action_parameters - enable legacy handling only for older versions
 2989   + Medium: pengine: Bug N:385265 - The failure stickiness of group children is ignored until it reaches -INFINITY
 2990   + Medium: pengine: Implement master and clone colocation by exlcuding nodes rather than setting ones score to INFINITY (similar to cs: 756afc42dc51)
 2991   + Medium: tengine: Bug LF:1875 - Correctly find actions to cancel when their node leaves the cluster
 2992 
 2993 * Wed Apr 23 2008 Andrew Beekhof <abeekhof@suse.de> - 0.6.3
 2994 - Update source tarball to revision: fd8904c9bc67 tip
 2995 - Statistics:
 2996     Changesets:      117
 2997     Diff:            354 files changed, 19094 insertions(+), 11338 deletions(-)
 2998 - Changes since Pacemaker-0.6.2
 2999   + Admin: Bug LF:1848 - crm_resource - Pass set name and id to delete_resource_attr() in the correct order
 3000   + Build: SNMP has been moved to the management/pygui project
 3001   + crmd: Bug LF1837 - Unmanaged resources prevent crmd from shutting down
 3002   + crmd: Prevent use-after-free in lrm interface code (Patch based on work by Keisuke MORI)
 3003   + pengine: Allow the cluster to make progress by not retrying failed demote actions
 3004   + pengine: Anti-colocation with slave should not prevent master colocation
 3005   + pengine: Bug LF 1768 - Wait more often for STONITH ops to complete before starting resources
 3006   + pengine: Bug LF1836 - Allow is-managed-default=false to be overridden by individual resources
 3007   + pengine: Bug LF185 - Prevent pointless master/slave instance shuffling by ignoring the master-pref of stopped instances
 3008   + pengine: Bug N-191176 - Implement interleaved ordering for clone-to-clone scenarios
 3009   + pengine: Bug N-347004 - Ensure clone notifications are always sent when an instance is stopped/started
 3010   + pengine: Bug N-347004 - Include notification ordering is correct for interleaved clones
 3011   + pengine: Bug PM-11 - Directly link probe_complete to starting clone instances
 3012   + pengine: Bug PM1 - Fix setting failcounts when applied to complex resources
 3013   + pengine: Bug PM12, LF1648 - Extensive revision of group ordering
 3014   + pengine: Bug PM7 - Ensure masters are always demoted before they are stopped
 3015   + pengine: Create probes after allocation to allow smarter handling of anonymous clones
 3016   + pengine: Do not prioritize clone instances that must be moved
 3017   + pengine: Fix error in previous commit that allowed more than the required number of masters to be promoted
 3018   + pengine: Group start ordering fixes
 3019   + pengine: Implement promote/demote ordering for cloned groups
 3020   + tengine: Repair failcount updates
 3021   + tengine: Use the correct offset when updating failcount
 3022   + Medium: Admin: Add a summary output that can be easily parsed by CTS for audit purposes
 3023   + Medium: Build: Make configure fail if bz2 or libxml2 are not present
 3024   + Medium: Build: Re-instate a better default for LCRSODIR
 3025   + Medium: CIB: Bug LF-1861 - Filter irrelvant error status from synchronous CIB clients
 3026   + Medium: Core: Bug 1849 - Invalid conversion of ordinal leap year to gregorian date
 3027   + Medium: Core: Drop compatibility code for 2.0.4 and 2.0.5 clusters
 3028   + Medium: crmd: Bug LF-1860 - Automatically cancel recurring ops before demote and promote operations (not only stops)
 3029   + Medium: crmd: Save the current CIB contents if we detect the PE crashed
 3030   + Medium: pengine: Bug LF:1866 - Fix version check when applying compatibility handling for failed start operations
 3031   + Medium: pengine: Bug LF:1866 - Restore the ability to have start failures not be fatal
 3032   + Medium: pengine: Bug PM1 - Failcount applies to all instances of non-unique clone
 3033   + Medium: pengine: Correctly set the state of partially active master/slave groups
 3034   + Medium: pengine: Do not claim to be stopping an already stopped orphan
 3035   + Medium: pengine: Ensure implies_left ordering constraints are always effective
 3036   + Medium: pengine: Indicate each resources 'promotion' score
 3037   + Medium: pengine: Prevent a possible use-of-NULL
 3038   + Medium: pengine: Reprocess the current action if it changed (so that any prior dependencies are updated)
 3039   + Medium: tengine: Bug LF-1859 - Wait for fail-count updates to complete before terminating the transition
 3040   + Medium: tengine: Bug LF:1859 - Do not abort graphs due to our own failcount updates
 3041   + Medium: tengine: Bug LF:1859 - Prevent the TE from interupting itself
 3042 
 3043 * Thu Feb 14 2008 Andrew Beekhof <abeekhof@suse.de> - 0.6.2
 3044 - Update source tarball to revision: 28b1a8c1868b tip
 3045 - Statistics:
 3046     Changesets:    11
 3047     Diff:          7 files changed, 58 insertions(+), 18 deletions(-)
 3048 - Changes since Pacemaker-0.6.1
 3049   + haresources2cib.py: set default-action-timeout to the default (20s)
 3050   + haresources2cib.py: update ra parameters lists
 3051   + Medium: SNMP: Allow the snmp subagent to be built (patch from MATSUDA, Daiki)
 3052   + Medium: Tools: Make sure the autoconf variables in haresources2cib are expanded
 3053 
 3054 * Tue Feb 12 2008 Andrew Beekhof <abeekhof@suse.de> - 0.6.1
 3055 - Update source tarball to revision: e7152d1be933 tip
 3056 - Statistics:
 3057     Changesets:    25
 3058     Diff:          37 files changed, 1323 insertions(+), 227 deletions(-)
 3059 - Changes since Pacemaker-0.6.0
 3060   + CIB: Ensure changes to top-level attributes (like admin_epoch) cause a disk write
 3061   + CIB: Ensure the archived file hits the disk before returning
 3062   + CIB: Repair the ability to do 'atomic increment' updates (value="value++")
 3063   + crmd: Bug #7 - Connecting to the crmd immediately after startup causes use-of-NULL
 3064   + Medium: CIB: Mask cib_diff_resync results from the caller - they do not need to know
 3065   + Medium: crmd: Delay starting the IPC server until we are fully functional
 3066   + Medium: CTS: Fix the startup patterns
 3067   + Medium: pengine: Bug 1820 - Allow the first resource in a group to be migrated
 3068   + Medium: pengine: Bug 1820 - Check the colocation dependencies of resources to be migrated
 3069 
 3070 * Mon Jan 14 2008 Andrew Beekhof <abeekhof@suse.de> - 0.6.0
 3071 - This is the first release of the Pacemaker Cluster Resource Manager formerly part of Heartbeat.
 3072 - For those looking for the GUI, mgmtd, CIM or TSA components, they are now found in
 3073   the new pacemaker-pygui project.  Build dependencies prevent them from being
 3074   included in Heartbeat (since the built-in CRM is no longer supported) and,
 3075   being non-core components, are not included with Pacemaker.
 3076 - Update source tarball to revision: c94b92d550cf
 3077 - Statistics:
 3078     Changesets:      347
 3079     Diff:            2272 files changed, 132508 insertions(+), 305991 deletions(-)
 3080 - Test hardware:
 3081     + 6-node vmware cluster (sles10-sp1/256MB/vmware stonith) on a single host (opensuse10.3/2GB/2.66GHz Quad Core2)
 3082     + 7-node EMC Centera cluster (sles10/512MB/2GHz Xeon/ssh stonith)
 3083 - Notes: Heartbeat Stack
 3084     + All testing was performed with STONITH enabled
 3085     + The CRM was enabled using the "crm respawn" directive
 3086 - Notes: OpenAIS Stack
 3087     + This release contains a preview of support for the OpenAIS cluster stack
 3088     + The current release of the OpenAIS project is missing two important
 3089     patches that we require.  OpenAIS packages containing these patches are
 3090     available for most major distributions at:
 3091     http://download.opensuse.org/repositories/server:/ha-clustering
 3092     + The OpenAIS stack is not currently recommended for use in clusters that
 3093     have shared data as STONITH support is not yet implimented
 3094     + pingd is not yet available for use with the OpenAIS stack
 3095     + 3 significant OpenAIS issues were found during testing of 4 and 6 node
 3096     clusters.  We are activly working together with the OpenAIS project to
 3097     get these resolved.
 3098 - Pending bugs encountered during testing:
 3099     + OpenAIS   #1736 - Openais membership took 20s to stabilize
 3100     + Heartbeat #1750 - ipc_bufpool_update: magic number in head does not match
 3101     + OpenAIS   #1793 - Assertion failure in memb_state_gather_enter()
 3102     + OpenAIS   #1796 - Cluster message corruption
 3103 - Changes since Heartbeat-2.1.2-24
 3104   + Add OpenAIS support
 3105   + Admin: crm_uuid - Look in the right place for Heartbeat UUID files
 3106   + admin: Exit and indicate a problem if the crmd exits while crmadmin is performing a query
 3107   + cib: Fix CIB_OP_UPDATE calls that modify the whole CIB
 3108   + cib: Fix compilation when supporting the heartbeat stack
 3109   + cib: Fix memory leaks caused by the switch to get_message_xml()
 3110   + cib: HA_VALGRIND_ENABLED needs to be set _and_ set to 1|yes|true
 3111   + cib: Use get_message_xml() in preference to cl_get_struct()
 3112   + cib: Use the return value from call to write() in cib_send_plaintext()
 3113   + Core: ccm nodes can legitimately have a node id of 0
 3114   + Core: Fix peer-process tracking for the Heartbeat stack
 3115   + Core: Heartbeat does not send status notifications for nodes that were already part of the cluster.  Fake them instead
 3116   + CRM: Add children to HA_Messages such that the field name matches F_XML_TAGNAME
 3117   + crm: Adopt a more flexible appraoch to enabling Valgrind
 3118   + crm: Fix compilation when bzip2 is not installed
 3119   + CRM: Future-proof get_message_xml()
 3120   + crmd: Filter election responses based on time not FSA state
 3121   + crmd: Handle all possible peer states in crmd_ha_status_callback()
 3122   + crmd: Make sure the current date/time is set - prevents use-of-NULL when evaluating rules
 3123   + crmd: Relax an assertion regrading  ccm membership instances
 3124   + crmd: Use (node->processes&crm_proc_ais) to accurately update the CIB after replace operations
 3125   + crmd: Heartbeat: Accurately record peer client status
 3126   + pengine: Bug 1777 - Allow colocation with a resource in the Stopped state
 3127   + pengine: Bug 1822 - Prevent use-of-NULL in PromoteRsc()
 3128   + pengine: Implement three recovery policies based on op_status and op_rc
 3129   + pengine: Parse fail-count correctly (it may be set to ININFITY)
 3130   + pengine: Prevent graph-loop when stonith agents need to be moved around before a STONITH op
 3131   + pengine: Prevent graph-loops when two operations have the same name+interval
 3132   + tengine: Cancel active timers when destroying graphs
 3133   + tengine: Ensure failcount is set correctly for failed stops/starts
 3134   + tengine: Update failcount for oeprations that time out
 3135   + Medium: admin: Prevent hang in crm_mon -1 when there is no cib connection - Patch from Junko IKEDA
 3136   + Medium: cib: Require --force|-f when performing potentially dangerous commands with cibadmin
 3137   + Medium: cib: Tweak the shutdown code
 3138   + Medium: Common: Only count peer processes of active nodes
 3139   + Medium: Core: Create generic cluster sign-in method
 3140   + Medium: core: Fix compilation when Heartbeat support is disabled
 3141   + Medium: Core: General cleanup for supporting two stacks
 3142   + Medium: Core: iso6601 - Support parsing of time-only strings
 3143   + Medium: core: Isolate more code that is only needed when SUPPORT_HEARTBEAT is enabled
 3144   + Medium: crm: Improved logging of errors in the XML parser
 3145   + Medium: crmd: Fix potential use-of-NULL in string comparison
 3146   + Medium: crmd: Reimpliment syncronizing of CIB queries and updates when invoking the PE
 3147   + Medium: crm_mon: Indicate when a node is both in standby mode and offline
 3148   + Medium: pengine: Bug 1822 - Do not try an promote groups if not all of it is active
 3149   + Medium: pengine: on_fail=nothing is an alias for 'ignore' not 'restart'
 3150   + Medium: pengine: Prevent a potential use-of-NULL in cron_range_satisfied()
 3151   + snmp subagent: fix a problem on displaying an unmanaged group
 3152   + snmp subagent: use the syslog setting
 3153   + snmp: v2 support (thanks to Keisuke MORI)
 3154   + snmp_subagent - made it not complain about some things if shutting down