From 9370a83b0b0731d436ae2569ca793f4124362e4b Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Tue, 8 Dec 2015 11:17:49 -0600 Subject: [PATCH 1/5] Fix: Build: expand git alias in GNUmakefile --- GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GNUmakefile b/GNUmakefile index 2265078f465..1dc80a4d56d 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -286,7 +286,7 @@ www: all global doxygen summary: @printf "\n* `date +"%a %b %d %Y"` `git config user.name` <`git config user.email`> $(NEXT_RELEASE)-1" - @printf "\n- Update source tarball to revision: `git id`" + @printf "\n- Update source tarball to revision: `git log --pretty=format:%h -n 1`" @printf "\n- Changesets: `git log --pretty=format:'%h' $(LAST_RELEASE)..HEAD | wc -l`" @printf "\n- Diff: " @git diff -r $(LAST_RELEASE)..HEAD --stat include lib mcp pengine/*.c pengine/*.h cib crmd fencing lrmd tools xml | tail -n 1 From 46b5c0e558c7930afb4538b294a98eec30ef6f30 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Tue, 8 Dec 2015 11:29:44 -0600 Subject: [PATCH 2/5] Doc: Pacemaker Explained, Pacemaker Remote: update for 1.1.14 --- doc/Pacemaker_Explained/en-US/Book_Info.xml | 2 +- .../en-US/Ch-Advanced-Resources.txt | 7 ++++++ doc/Pacemaker_Explained/en-US/Ch-Stonith.txt | 23 +++++++++++++++++-- .../en-US/Revision_History.xml | 12 ++++++++++ doc/Pacemaker_Remote/en-US/Book_Info.xml | 2 +- doc/Pacemaker_Remote/en-US/Ch-Intro.txt | 5 ++++ doc/Pacemaker_Remote/en-US/Ch-Options.txt | 12 +++++++--- .../en-US/Revision_History.xml | 7 +++++- 8 files changed, 62 insertions(+), 8 deletions(-) diff --git a/doc/Pacemaker_Explained/en-US/Book_Info.xml b/doc/Pacemaker_Explained/en-US/Book_Info.xml index 56b9d9bfda1..bce00895244 100644 --- a/doc/Pacemaker_Explained/en-US/Book_Info.xml +++ b/doc/Pacemaker_Explained/en-US/Book_Info.xml @@ -12,7 +12,7 @@ changes (pacemaker), and PUBSNUMBER for simple textual changes (corrections, translations, etc.). --> - 5 + 6 0 diff --git a/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt b/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt index 4060201d925..9d0bb7a43c1 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt +++ b/doc/Pacemaker_Explained/en-US/Ch-Advanced-Resources.txt @@ -215,6 +215,13 @@ Options inherited from <> resources: indexterm:[clone-node-max,Clone Option] indexterm:[Clone,Option,clone-node-max] +|clone-min +|1 +|Require at least this number of clone instances to be runnable before allowing +resources depending on the clone to be runnable '(since 1.1.14)' + indexterm:[clone-min,Clone Option] + indexterm:[Clone,Option,clone-min] + |notify |true |When stopping or starting a copy of the clone, tell all the other diff --git a/doc/Pacemaker_Explained/en-US/Ch-Stonith.txt b/doc/Pacemaker_Explained/en-US/Ch-Stonith.txt index f9422a9457c..a5bcf0dcfad 100644 --- a/doc/Pacemaker_Explained/en-US/Ch-Stonith.txt +++ b/doc/Pacemaker_Explained/en-US/Ch-Stonith.txt @@ -550,7 +550,7 @@ Some possible uses of topologies include: * Initiate a kdump and then poweroff the node .Properties of Fencing Levels -[width="95%",cols="1m,6<",options="header",align="center"] +[width="95%",cols="1m,3<",options="header",align="center"] |========================================================= |Field @@ -562,10 +562,22 @@ Some possible uses of topologies include: indexterm:[Fencing,fencing-level,id] |target -|The node to which this level applies +|The name of a single node to which this level applies indexterm:[target,fencing-level] indexterm:[Fencing,fencing-level,target] +|target-pattern +|A regular expression matching the names of nodes to which this level applies +'(since 1.1.14)' + indexterm:[target-pattern,fencing-level] + indexterm:[Fencing,fencing-level,target-pattern] + +|target-attribute +|The name of a node attribute that is set for nodes to which this level applies +'(since 1.1.14)' + indexterm:[target-attribute,fencing-level] + indexterm:[Fencing,fencing-level,target-attribute] + |index |The order in which to attempt the levels. Levels are attempted in ascending order 'until one succeeds'. @@ -871,3 +883,10 @@ be logged but ignored. When a reboot operation is remapped, any action-specific timeout for the remapped action will be used (for example, +pcmk_off_timeout+ will be used when executing the +off+ command, not +pcmk_reboot_timeout+). + +[NOTE] +==== +In Pacemaker versions 1.1.13 and earlier, reboots will not be remapped in the +second case. To achieve the same effect, separate fencing devices for off and +on actions must be configured. +==== diff --git a/doc/Pacemaker_Explained/en-US/Revision_History.xml b/doc/Pacemaker_Explained/en-US/Revision_History.xml index eecd34b59be..33010d5c0eb 100644 --- a/doc/Pacemaker_Explained/en-US/Revision_History.xml +++ b/doc/Pacemaker_Explained/en-US/Revision_History.xml @@ -55,6 +55,18 @@ + + 6-0 + Tue Dec 8 2015 + KenGaillotkgaillot@redhat.com + + + + Update for Pacemaker 1.1.14 + + + + diff --git a/doc/Pacemaker_Remote/en-US/Book_Info.xml b/doc/Pacemaker_Remote/en-US/Book_Info.xml index a26494e7427..12e1ab891d0 100644 --- a/doc/Pacemaker_Remote/en-US/Book_Info.xml +++ b/doc/Pacemaker_Remote/en-US/Book_Info.xml @@ -12,7 +12,7 @@ changes (OS, pacemaker, corosync, pcs), and PUBSNUMBER for simple textual changes (corrections, translations, etc.). --> - 4 + 5 0 diff --git a/doc/Pacemaker_Remote/en-US/Ch-Intro.txt b/doc/Pacemaker_Remote/en-US/Ch-Intro.txt index 438ecd2aa4e..16934907f84 100644 --- a/doc/Pacemaker_Remote/en-US/Ch-Intro.txt +++ b/doc/Pacemaker_Remote/en-US/Ch-Intro.txt @@ -76,6 +76,11 @@ It is recommended to run Pacemaker 1.1.12 or later when using pacemaker_remote due to important bug fixes. An overview of changes in pacemaker_remote capability by version: +.1.1.14 +* Resources that create guest nodes can be included in groups +* reconnect_interval option for remote nodes +* Bug fixes, including a memory leak + .1.1.13 * Support for maintenance mode * Remote nodes can recover without being fenced when the cluster node diff --git a/doc/Pacemaker_Remote/en-US/Ch-Options.txt b/doc/Pacemaker_Remote/en-US/Ch-Options.txt index abe511fd350..f04b8b6e94e 100644 --- a/doc/Pacemaker_Remote/en-US/Ch-Options.txt +++ b/doc/Pacemaker_Remote/en-US/Ch-Options.txt @@ -52,13 +52,19 @@ Descriptions of these instance attributes can be retrieved using the following `pcs` command: ---- # pcs resource describe remote -ocf:pacemaker:remote - - - +ocf:pacemaker:remote - remote resource agent Resource options: server: Server location to connect to. This can be an ip address or hostname. port: tcp port to connect to. + reconnect_interval: Time in seconds to wait before attempting to reconnect to + a remote node after an active connection to the remote + node has been severed. This wait is recurring. If + reconnect fails after the wait period, a new reconnect + attempt will be made after observing the wait time. When + this option is in use, pacemaker will keep attempting to + reach out and connect to the remote node indefinitely + after each wait interval. ---- When defining a remote node's connection resource, it is common and recommended diff --git a/doc/Pacemaker_Remote/en-US/Revision_History.xml b/doc/Pacemaker_Remote/en-US/Revision_History.xml index 269b549a118..1954f14d962 100644 --- a/doc/Pacemaker_Remote/en-US/Revision_History.xml +++ b/doc/Pacemaker_Remote/en-US/Revision_History.xml @@ -31,7 +31,12 @@ KenGaillotkgaillot@redhat.com Targeted CentOS 7.1 and Pacemaker 1.1.12+, updated for current terminology and practice + + 5-0 + Tue Dec 8 2015 + KenGaillotkgaillot@redhat.com + Updated for Pacemaker 1.1.14 + - From 1ca9f82300ea0ce246b0db79ad75564b4ec0b0a8 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Tue, 8 Dec 2015 12:23:51 -0600 Subject: [PATCH 3/5] Feature: crmd: make built-in notifications conditional at compile-time The interface is expected to change significantly, so built-in notifications are disabled by default in preparation for the 1.1.14 release. --- crmd/control.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crmd/control.c b/crmd/control.c index d1f9acd14b7..5208dc27b67 100644 --- a/crmd/control.c +++ b/crmd/control.c @@ -893,6 +893,8 @@ pe_cluster_option crmd_opts[] = { " To ensure these changes take effect, we can optionally poll the cluster's status for changes." }, +#ifdef RHEL7_COMPAT + /* this interface is expected to change but was released in RHEL 7 */ { "notification-agent", NULL, "string", NULL, "/dev/null", &check_script, "Notification script or tool to be called after significant cluster events", "Full path to a script or binary that will be invoked when resources start/stop/fail, fencing occurs or nodes join/leave the cluster.\n" @@ -902,6 +904,7 @@ pe_cluster_option crmd_opts[] = { "Destination for notifications (Optional)", "Where should the supplied script send notifications to. Useful to avoid hard-coding this in the script." }, +#endif { "load-threshold", NULL, "percentage", NULL, "80%", &check_utilization, "The maximum amount of system resources that should be used by nodes in the cluster", @@ -992,9 +995,11 @@ config_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void verify_crmd_options(config_hash); +#ifdef RHEL7_COMPAT script = crmd_pref(config_hash, "notification-agent"); value = crmd_pref(config_hash, "notification-recipient"); crmd_enable_notifications(script, value); +#endif value = crmd_pref(config_hash, XML_CONFIG_ATTR_DC_DEADTIME); election_trigger->period_ms = crm_get_msec(value); From 7cd6dcf12b2f510baa974a8b9ee612850bc95cc9 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Tue, 8 Dec 2015 12:54:13 -0600 Subject: [PATCH 4/5] Build: update version information for 1.1.14 --- lib/cib/Makefile.am | 2 +- lib/fencing/Makefile.am | 2 +- lib/pengine/Makefile.am | 2 +- lib/services/Makefile.am | 2 +- pacemaker.spec.in | 2 +- pengine/Makefile.am | 2 +- version.m4 | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/cib/Makefile.am b/lib/cib/Makefile.am index 1e50511a4a2..50f56eacc20 100644 --- a/lib/cib/Makefile.am +++ b/lib/cib/Makefile.am @@ -28,7 +28,7 @@ noinst_HEADERS = libcib_la_SOURCES = cib_ops.c cib_utils.c cib_client.c cib_native.c cib_attrs.c libcib_la_SOURCES += cib_file.c cib_remote.c -libcib_la_LDFLAGS = -version-info 4:2:0 -L$(top_builddir)/lib/pengine/.libs +libcib_la_LDFLAGS = -version-info 5:0:1 -L$(top_builddir)/lib/pengine/.libs libcib_la_LIBADD = $(CRYPTOLIB) $(top_builddir)/lib/pengine/libpe_rules.la $(top_builddir)/lib/common/libcrmcommon.la libcib_la_CFLAGS = -I$(top_srcdir) diff --git a/lib/fencing/Makefile.am b/lib/fencing/Makefile.am index fbe02e4e030..cf6d5fd5a91 100644 --- a/lib/fencing/Makefile.am +++ b/lib/fencing/Makefile.am @@ -25,7 +25,7 @@ AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include \ lib_LTLIBRARIES = libstonithd.la libstonithd_la_SOURCES = st_client.c -libstonithd_la_LDFLAGS = -version-info 3:3:1 +libstonithd_la_LDFLAGS = -version-info 4:0:2 libstonithd_la_LIBADD = $(top_builddir)/lib/common/libcrmcommon.la AM_CFLAGS = $(AM_CPPFLAGS) diff --git a/lib/pengine/Makefile.am b/lib/pengine/Makefile.am index 60d1770753e..da08fb99c21 100644 --- a/lib/pengine/Makefile.am +++ b/lib/pengine/Makefile.am @@ -30,7 +30,7 @@ libpe_rules_la_LDFLAGS = -version-info 2:5:0 libpe_rules_la_SOURCES = rules.c common.c libpe_rules_la_LIBADD = $(top_builddir)/lib/common/libcrmcommon.la -libpe_status_la_LDFLAGS = -version-info 9:0:5 +libpe_status_la_LDFLAGS = -version-info 10:0:0 libpe_status_la_SOURCES = status.c unpack.c utils.c complex.c native.c group.c clone.c rules.c common.c libpe_status_la_LIBADD = @CURSESLIBS@ $(top_builddir)/lib/common/libcrmcommon.la diff --git a/lib/services/Makefile.am b/lib/services/Makefile.am index 4deef351238..000298b056d 100644 --- a/lib/services/Makefile.am +++ b/lib/services/Makefile.am @@ -24,7 +24,7 @@ lib_LTLIBRARIES = libcrmservice.la noinst_HEADERS = upstart.h systemd.h services_private.h libcrmservice_la_SOURCES = services.c services_linux.c -libcrmservice_la_LDFLAGS = -version-info 3:0:0 +libcrmservice_la_LDFLAGS = -version-info 4:0:1 libcrmservice_la_CFLAGS = $(GIO_CFLAGS) -DOCF_ROOT_DIR=\"@OCF_ROOT_DIR@\" libcrmservice_la_LIBADD = $(GIO_LIBS) $(top_builddir)/lib/common/libcrmcommon.la $(DBUS_LIBS) diff --git a/pacemaker.spec.in b/pacemaker.spec.in index 3639a05776b..78aece0b1e6 100644 --- a/pacemaker.spec.in +++ b/pacemaker.spec.in @@ -54,7 +54,7 @@ Name: pacemaker Summary: Scalable High-Availability cluster resource manager -Version: 1.1.13 +Version: 1.1.14 Release: %{pcmk_release}%{?dist} License: GPLv2+ and LGPLv2+ Url: http://www.clusterlabs.org diff --git a/pengine/Makefile.am b/pengine/Makefile.am index 0e12a1f3cda..faec7057d74 100644 --- a/pengine/Makefile.am +++ b/pengine/Makefile.am @@ -61,7 +61,7 @@ endif noinst_HEADERS = allocate.h utils.h pengine.h #utils.h pengine.h -libpengine_la_LDFLAGS = -version-info 9:0:5 +libpengine_la_LDFLAGS = -version-info 10:0:0 # -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version libpengine_la_SOURCES = pengine.c allocate.c utils.c constraints.c libpengine_la_SOURCES += native.c group.c clone.c master.c graph.c utilization.c diff --git a/version.m4 b/version.m4 index 3d5e96b68c3..70596af4456 100644 --- a/version.m4 +++ b/version.m4 @@ -1 +1 @@ -m4_define([VERSION_NUMBER], [1.1.13]) +m4_define([VERSION_NUMBER], [1.1.14]) From 64ccc3a25830d94a1881951901b8d2b338787272 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Tue, 8 Dec 2015 12:54:31 -0600 Subject: [PATCH 5/5] Doc: update change log for 1.1.14 --- ChangeLog | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5c90ccd60bb..2643c7a40fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,69 @@ +* Tue Dec 08 2015 Ken Gaillot Pacemaker-1.1.14-rc1-1 +- Update source tarball to revision: 7cd6dcf +- Changesets: 656 +- Diff: 169 files changed, 13014 insertions(+), 7579 deletions(-) + +- Features added since Pacemaker-1.1.13 + + crm_resource: Indicate common reasons why a resource may not start after a cleanup + + crm_resource: New --force-promote and --force-demote options for debugging + + fencing: Support targeting fencing topologies by node name pattern or node attribute + + fencing: Remap sequential topology reboots to all-off-then-all-on + + pengine: Allow guest remote nodes using containers/vms to be nested in a group resource + + pengine: Allow resources to start and stop as soon as their state is known on all nodes + + pengine: Include a list of all and available nodes with clone notifications + + pengine: Addition of the clone resource clone-min metadata option + + pengine: Support of multiple-active=block for resource groups + + remote: reconnect_interval option for remote nodes to delay reconnect after fence + +- Changes since Pacemaker-1.1.13 + + fix multiple memory issues (leaks, use-after-free, double free, use-of-NULL) in components and tools + + cib: Do not terminate due to badly behaving clients + + cman: handle corosync-invented node names of the form Node{id} for peers not in its node list + + controld: replace bashism + + crm_node: Display node state with -l and quorum status with -q, if available + + crmd: resources would sometimes be restarted when only non-unique parameters changed + + crmd: fence remote node after connection failure only once + + crmd: handle resources named the same as cluster nodes + + crmd: Pre-emptively fail in-flight actions when lrmd connections fail + + crmd: Record actions in the CIB as failed if we cannot execute them + + crm_report: Enable password sanitizing by default + + crm_report: Allow log file discovery to be disabled + + crm_resource: Allow the resource configuration to be modified for --force-{check,start,..} calls + + crm_resource: Compensate for -C and -p being called with the child resource for clones + + crm_resource: Correctly clean up all children for anonymous cloned groups + + crm_resource: Correctly clean up failcounts for inactive anonymous clones + + crm_resource: Correctly observe --force when deleting and updating attributes + + crm_shadow: Fix "crm_shadow --diff" + + crm_simulate: Prevent segfault on arches with 64bit time_t + + fencing: ensure "required"/"automatic" only apply to "on" actions + + fencing: Return a provider for the internal fencing agent "#watchdog" instead of logging an error + + fencing: ignore stderr output of fence agents (often used for debug messages) + + libcib: potential user input overflow + + libcluster: overhaul peer cache management + + log: make syslog less noisy + + lrmd: cancel currently pending STONITH op if stonithd connection is lost + + lrmd: Finalize all pending and recurring operations when cleaning up a resource + + pengine: Bug cl#5247 - Imply resources running on a container are stopped when the container is stopped + + pengine: cl#5235 - Prevent graph loops that can be introduced by "load_stopped -> migrate_to" ordering + + pengine: Correctly bypass fencing for resources that do not require it + + pengine: do not timeout remote node recurring monitor op failure until after fencing + + pengine: Ensure recurring monitor operations are cancelled when clone instances are de-allocated + + pengine: fixes segfault in pengine when fencing remote node + + pengine: properly handle blocked clone actions + + pengine: ensure failed actions that occurred in node shutdown are displayed + + remote: Correctly display the usage of the ocf:pacemaker:remote resource agent + + remote: do not fail operations because of a migration + + remote: enable reloads for select remote connection options + + resources: allow for top output with or without percent sign in HealthCPU + + resources: Prevent an error message on stopping "Dummy" resource + + systemd: Prevent segfault when logging failed operations + + systemd: Reconnect to System DBus if the connection is closed + + systemd: set systemd resources' timeout values higher than systemd's own default + + tools: Do not send command lines to syslog + + upstart: Ensure pending structs are correctly unreferenced + + * Wed Jun 24 2015 Andrew Beekhof Pacemaker-1.1.13-1 - Update source tarball to revision: 2a1847e - Changesets: 750