diff --git a/SOURCES/bz1371880-1-libvotequorum-Bump-version.patch b/SOURCES/bz1371880-1-libvotequorum-Bump-version.patch new file mode 100644 index 0000000..9507962 --- /dev/null +++ b/SOURCES/bz1371880-1-libvotequorum-Bump-version.patch @@ -0,0 +1,20 @@ +From 96f91f23a6a413535cc2f0e8492e2300373fed40 Mon Sep 17 00:00:00 2001 +From: Jan Friesse +Date: Mon, 7 Nov 2016 17:39:12 +0100 +Subject: [PATCH] libvotequorum: Bump version + +Signed-off-by: Jan Friesse +--- + lib/libvotequorum.verso | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/lib/libvotequorum.verso b/lib/libvotequorum.verso +index 66ce77b..ae9a76b 100644 +--- a/lib/libvotequorum.verso ++++ b/lib/libvotequorum.verso +@@ -1 +1 @@ +-7.0.0 ++8.0.0 +-- +1.7.1 + diff --git a/SOURCES/bz1371880-2-votequorum-Don-t-update-expected_votes-display-if-va.patch b/SOURCES/bz1371880-2-votequorum-Don-t-update-expected_votes-display-if-va.patch new file mode 100644 index 0000000..a7b599c --- /dev/null +++ b/SOURCES/bz1371880-2-votequorum-Don-t-update-expected_votes-display-if-va.patch @@ -0,0 +1,80 @@ +From 596433066805af029be1292a37a35ce31307f0bf Mon Sep 17 00:00:00 2001 +From: Christine Caulfield +Date: Tue, 13 Sep 2016 14:28:56 +0100 +Subject: [PATCH] votequorum: Don't update expected_votes display if value is too high + +If expected_votes was set via the library but the calculation +decides it's too high, then an error is correctly returned but +the value is still set in the nodes' expected_votes field and +turns up in the corosync-quorumtool display. + +This patch separates out the quorum calculation from the updating +of expected_votes per node to prevent this from happening. + +Signed-off-by: Christine Caulfield +Reviewed-by: Jan Friesse +(cherry picked from commit bd2e6b5d9d03f2cb208ecccee0f76aeb06dbd1b4) +--- + exec/votequorum.c | 25 ++++++++++++++++++++----- + 1 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/exec/votequorum.c b/exec/votequorum.c +index 459388f..405350f 100644 +--- a/exec/votequorum.c ++++ b/exec/votequorum.c +@@ -931,11 +931,7 @@ static int calculate_quorum(int allow_decrease, unsigned int max_expected, unsig + node->node_id, node->state, node->votes, node->expected_votes); + + if (node->state == NODESTATE_MEMBER) { +- if (max_expected) { +- node->expected_votes = max_expected; +- } else { +- highest_expected = max(highest_expected, node->expected_votes); +- } ++ highest_expected = max(highest_expected, node->expected_votes); + total_votes += node->votes; + total_nodes++; + } +@@ -986,6 +982,22 @@ static int calculate_quorum(int allow_decrease, unsigned int max_expected, unsig + return newquorum; + } + ++static void update_node_expected_votes(int new_expected_votes) ++{ ++ struct list_head *nodelist; ++ struct cluster_node *node; ++ ++ if (new_expected_votes) { ++ list_iterate(nodelist, &cluster_members_list) { ++ node = list_entry(nodelist, struct cluster_node, list); ++ ++ if (node->state == NODESTATE_MEMBER) { ++ node->expected_votes = new_expected_votes; ++ } ++ } ++ } ++} ++ + static void are_we_quorate(unsigned int total_votes) + { + int quorate; +@@ -1126,6 +1138,8 @@ static void recalculate_quorum(int allow_decrease, int by_current_nodes) + } + + quorum = calculate_quorum(allow_decrease, cluster_members, &total_votes); ++ update_node_expected_votes(cluster_members); ++ + are_we_quorate(total_votes); + + LEAVE(); +@@ -2651,6 +2665,7 @@ static void message_handler_req_lib_votequorum_setexpected (void *conn, const vo + error = CS_ERR_INVALID_PARAM; + goto error_exit; + } ++ update_node_expected_votes(req_lib_votequorum_setexpected->expected_votes); + + votequorum_exec_send_reconfigure(VOTEQUORUM_RECONFIG_PARAM_EXPECTED_VOTES, us->node_id, + req_lib_votequorum_setexpected->expected_votes); +-- +1.7.1 + diff --git a/SOURCES/bz1371880-3-votequorum-simplify-reconfigure-message-handling.patch b/SOURCES/bz1371880-3-votequorum-simplify-reconfigure-message-handling.patch new file mode 100644 index 0000000..10dca2f --- /dev/null +++ b/SOURCES/bz1371880-3-votequorum-simplify-reconfigure-message-handling.patch @@ -0,0 +1,45 @@ +From 4a385f2e94c7168dbd92168c54a80ee97a3c2140 Mon Sep 17 00:00:00 2001 +From: Christine Caulfield +Date: Tue, 13 Sep 2016 15:55:58 +0100 +Subject: [PATCH] votequorum: simplify reconfigure message handling + +As we now have update_node_expected_votes(), we can use that +when receiving a new EXPECTED_VOTES value from another node +rather than having our own loop. + +Signed-off-by: Christine Caulfield +(cherry picked from commit c4683be9b0bafec7f288c0201b82c90d0c43d5ce) +--- + exec/votequorum.c | 9 ++------- + 1 files changed, 2 insertions(+), 7 deletions(-) + +diff --git a/exec/votequorum.c b/exec/votequorum.c +index 405350f..f61aa81 100644 +--- a/exec/votequorum.c ++++ b/exec/votequorum.c +@@ -2158,7 +2158,6 @@ static void message_handler_req_exec_votequorum_reconfigure ( + { + const struct req_exec_quorum_reconfigure *req_exec_quorum_reconfigure = message; + struct cluster_node *node; +- struct list_head *nodelist; + + ENTER(); + +@@ -2168,12 +2167,8 @@ static void message_handler_req_exec_votequorum_reconfigure ( + switch(req_exec_quorum_reconfigure->param) + { + case VOTEQUORUM_RECONFIG_PARAM_EXPECTED_VOTES: +- list_iterate(nodelist, &cluster_members_list) { +- node = list_entry(nodelist, struct cluster_node, list); +- if (node->state == NODESTATE_MEMBER) { +- node->expected_votes = req_exec_quorum_reconfigure->value; +- } +- } ++ update_node_expected_votes(req_exec_quorum_reconfigure->value); ++ + votequorum_exec_send_expectedvotes_notification(); + update_ev_barrier(req_exec_quorum_reconfigure->value); + if (ev_tracking) { +-- +1.7.1 + diff --git a/SOURCES/bz1371880-4-build-Fix-build-on-RHEL7.3-latest.patch b/SOURCES/bz1371880-4-build-Fix-build-on-RHEL7.3-latest.patch new file mode 100644 index 0000000..b67271b --- /dev/null +++ b/SOURCES/bz1371880-4-build-Fix-build-on-RHEL7.3-latest.patch @@ -0,0 +1,28 @@ +From 19e48a6eee20d5f34f79a3b8d4e1c694169c1d7b Mon Sep 17 00:00:00 2001 +From: Fabio M. Di Nitto +Date: Sun, 23 Oct 2016 08:23:52 +0200 +Subject: [PATCH 01/18] [build] Fix build on RHEL7.3 latest + +header inclusion have changed + +Signed-off-by: Fabio M. Di Nitto +(cherry picked from commit e204e871ec4eb705d177598d5c7ae8f0446a280f) +--- + lib/sam.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/lib/sam.c b/lib/sam.c +index 1596ae2..33aa394 100644 +--- a/lib/sam.c ++++ b/lib/sam.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + + #include + #include +-- +1.7.1 + diff --git a/SOURCES/bz1434528-1-cfg-Prevents-use-of-uninitialized-buffer.patch b/SOURCES/bz1434528-1-cfg-Prevents-use-of-uninitialized-buffer.patch new file mode 100644 index 0000000..d294e3f --- /dev/null +++ b/SOURCES/bz1434528-1-cfg-Prevents-use-of-uninitialized-buffer.patch @@ -0,0 +1,30 @@ +From 52e6ae57ea06d0bef61c5c9250881bef1372ead2 Mon Sep 17 00:00:00 2001 +From: Michael Jones +Date: Mon, 10 Oct 2016 11:18:25 -0500 +Subject: [PATCH] cfg: Prevents use of uninitialized buffer + +Signed-off-by: Michael Jones +Reviewed-by: Jan Friesse +(cherry picked from commit a24d26c46ace663ac69e469f8e415e14cc1a8906) +--- + exec/cfg.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/exec/cfg.c b/exec/cfg.c +index 4e62d73..a5482ad 100644 +--- a/exec/cfg.c ++++ b/exec/cfg.c +@@ -521,8 +521,8 @@ static void message_handler_req_exec_cfg_killnode ( + cs_name_t reason; + + ENTER(); +- log_printf(LOGSYS_LEVEL_DEBUG, "request to kill node %d(us=%d): %s", +- req_exec_cfg_killnode->nodeid, api->totem_nodeid_get(), reason.value); ++ log_printf(LOGSYS_LEVEL_DEBUG, "request to kill node %d(us=%d)", ++ req_exec_cfg_killnode->nodeid, api->totem_nodeid_get()); + if (req_exec_cfg_killnode->nodeid == api->totem_nodeid_get()) { + marshall_from_mar_name_t(&reason, &req_exec_cfg_killnode->reason); + log_printf(LOGSYS_LEVEL_NOTICE, "Killed by node %d: %s", +-- +1.7.1 + diff --git a/SOURCES/bz1434528-2-Totempg-remove-duplicate-memcpy-in-mcast_msg-func.patch b/SOURCES/bz1434528-2-Totempg-remove-duplicate-memcpy-in-mcast_msg-func.patch new file mode 100644 index 0000000..2c7a206 --- /dev/null +++ b/SOURCES/bz1434528-2-Totempg-remove-duplicate-memcpy-in-mcast_msg-func.patch @@ -0,0 +1,33 @@ +From 4a8e9d80409590cb42732ae3105b5ae71fda52c1 Mon Sep 17 00:00:00 2001 +From: Bin Liu +Date: Fri, 2 Dec 2016 10:37:27 +0800 +Subject: [PATCH] Totempg: remove duplicate memcpy in mcast_msg func + +In function mcast_msg of totempg.c, line 923, there is a memcpy call in +"else" branch, and also another memcpy out of the "else" branch, while +the two calls have the same parameters. It is possibleto remove the memcpy +in "else" branch. + +Signed-off-by: Bin Liu +Reviewed-by: Jan Friesse +(cherry picked from commit 819d66ca1ccaa86ef21fc4112033b38ce3f9af29) +--- + exec/totempg.c | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +diff --git a/exec/totempg.c b/exec/totempg.c +index 0b46782..05729be 100644 +--- a/exec/totempg.c ++++ b/exec/totempg.c +@@ -934,8 +934,6 @@ static int mcast_msg ( + data_ptr = (unsigned char *)iovec[i].iov_base + copy_base; + else { + data_ptr = fragmentation_data; +- memcpy (&fragmentation_data[fragment_size], +- (unsigned char *)iovec[i].iov_base + copy_base, copy_len); + } + + memcpy (&fragmentation_data[fragment_size], +-- +1.7.1 + diff --git a/SOURCES/bz1434528-3-Remove-redundant-header-file-inclusion.patch b/SOURCES/bz1434528-3-Remove-redundant-header-file-inclusion.patch new file mode 100644 index 0000000..f314f05 --- /dev/null +++ b/SOURCES/bz1434528-3-Remove-redundant-header-file-inclusion.patch @@ -0,0 +1,183 @@ +From d6c7ade277a4a23d84c56d7fde6b60b377a1023b Mon Sep 17 00:00:00 2001 +From: Takeshi MIZUTA +Date: Mon, 5 Dec 2016 01:23:46 +0900 +Subject: [PATCH] Remove redundant header file inclusion + +Signed-off-by: Takeshi MIZUTA +Signed-off-by: Jan Friesse +Reviewed-by: Jan Friesse +(rebased from commit 4939c75629cf9ecb2c03ee28645c9c18c858cfa9) +--- + cts/agents/common_test_agent.c | 1 - + cts/agents/cpg_test_agent.c | 1 - + exec/cmap.c | 1 - + exec/cpg.c | 2 -- + exec/quorum.c | 2 -- + exec/sync.c | 2 -- + exec/vsf_quorum.c | 1 - + qdevices/tlv.c | 1 - + test/cpgbench.c | 1 - + test/cpgbenchzc.c | 2 -- + test/cpghum.c | 1 - + tools/corosync-notifyd.c | 3 --- + 12 files changed, 0 insertions(+), 18 deletions(-) + +diff --git a/cts/agents/common_test_agent.c b/cts/agents/common_test_agent.c +index 67d76c1..e395c31 100644 +--- a/cts/agents/common_test_agent.c ++++ b/cts/agents/common_test_agent.c +@@ -44,7 +44,6 @@ + #include + #include + #include +-#include + #include + + #include "common_test_agent.h" +diff --git a/cts/agents/cpg_test_agent.c b/cts/agents/cpg_test_agent.c +index a52f4f0..0837c69 100644 +--- a/cts/agents/cpg_test_agent.c ++++ b/cts/agents/cpg_test_agent.c +@@ -44,7 +44,6 @@ + #include + #include + #include +-#include + #include + + #include +diff --git a/exec/cmap.c b/exec/cmap.c +index ba4c798..950a76f 100644 +--- a/exec/cmap.c ++++ b/exec/cmap.c +@@ -39,7 +39,6 @@ + #include + #include + #include +-#include + #include + #include + +diff --git a/exec/cpg.c b/exec/cpg.c +index 5bd830f..78ac1e9 100644 +--- a/exec/cpg.c ++++ b/exec/cpg.c +@@ -51,8 +51,6 @@ + #include + #include + #include +-#include +-#include + #include + #include + #include +diff --git a/exec/quorum.c b/exec/quorum.c +index d4837a2..323a15f 100644 +--- a/exec/quorum.c ++++ b/exec/quorum.c +@@ -46,8 +46,6 @@ + #include + #include + #include +-#include +-#include + #include + + #include +diff --git a/exec/sync.c b/exec/sync.c +index ea452e6..283634a 100644 +--- a/exec/sync.c ++++ b/exec/sync.c +@@ -45,8 +45,6 @@ + #include + #include + #include +-#include +-#include + #include + + #include +diff --git a/exec/vsf_quorum.c b/exec/vsf_quorum.c +index e268dea..4bf3b0a 100644 +--- a/exec/vsf_quorum.c ++++ b/exec/vsf_quorum.c +@@ -62,7 +62,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/qdevices/tlv.c b/qdevices/tlv.c +index a7eae95..5b45869 100644 +--- a/qdevices/tlv.c ++++ b/qdevices/tlv.c +@@ -47,7 +47,6 @@ + #elif defined(__FreeBSD__) || defined(__NetBSD__) + #include + #elif defined(__OpenBSD__) +-#include + #define be64toh(x) betoh64(x) + #endif + +diff --git a/test/cpgbench.c b/test/cpgbench.c +index 23fc2b0..059effe 100644 +--- a/test/cpgbench.c ++++ b/test/cpgbench.c +@@ -40,7 +40,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/test/cpgbenchzc.c b/test/cpgbenchzc.c +index db78289..92f55ee 100644 +--- a/test/cpgbenchzc.c ++++ b/test/cpgbenchzc.c +@@ -40,14 +40,12 @@ + #include + #include + #include +-#include + #include + #include + #include + #include + #include + #include +-#include + #include + #include + +diff --git a/test/cpghum.c b/test/cpghum.c +index 5772f81..006bf45 100644 +--- a/test/cpghum.c ++++ b/test/cpghum.c +@@ -38,7 +38,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/tools/corosync-notifyd.c b/tools/corosync-notifyd.c +index 507a248..8f37a30 100644 +--- a/tools/corosync-notifyd.c ++++ b/tools/corosync-notifyd.c +@@ -54,9 +54,6 @@ + #include + #include + +-#include +-#include +- + #include + #include + #include +-- +1.7.1 + diff --git a/SOURCES/bz1434529-1-man-Fix-typos-in-man-page.patch b/SOURCES/bz1434529-1-man-Fix-typos-in-man-page.patch new file mode 100644 index 0000000..45c532e --- /dev/null +++ b/SOURCES/bz1434529-1-man-Fix-typos-in-man-page.patch @@ -0,0 +1,587 @@ +From b642904ea9640bd7a1573a8c0d2c5bcb43a10dfc Mon Sep 17 00:00:00 2001 +From: Takeshi MIZUTA +Date: Sat, 26 Nov 2016 01:12:03 +0900 +Subject: [PATCH] man: Fix typos in man page + +Signed-off-by: Takeshi MIZUTA +Reviewed-by: Jan Friesse +(cherry picked from commit fef5e117aac8362a056a966b453cf2624a1fa9ba) +--- + man/cmap_context_set.3.in | 2 +- + man/cmap_dec.3.in | 2 +- + man/cmap_delete.3.in | 2 +- + man/cmap_dispatch.3.in | 2 +- + man/cmap_get.3.in | 2 +- + man/cmap_inc.3.in | 2 +- + man/cmap_initialize.3.in | 2 +- + man/cmap_iter_finalize.3.in | 2 +- + man/cmap_iter_next.3.in | 4 ++-- + man/cmap_keys.8 | 2 +- + man/cmap_set.3.in | 2 +- + man/cmap_track_add.3.in | 2 +- + man/corosync-notifyd.8 | 2 +- + man/corosync-qdevice.8 | 2 +- + man/corosync.8 | 2 +- + man/corosync.conf.5 | 14 +++++++------- + man/cpg_dispatch.3.in | 2 +- + man/cpg_initialize.3.in | 2 +- + man/cpg_iteration_finalize.3.in | 2 +- + man/cpg_mcast_joined.3.in | 2 +- + man/cpg_model_initialize.3.in | 2 +- + man/cpg_zcb_alloc.3.in | 2 +- + man/cpg_zcb_mcast_joined.3.in | 2 +- + man/ipc_common.sh.errors | 6 +++--- + man/quorum_context_set.3.in | 2 +- + man/quorum_dispatch.3.in | 2 +- + man/quorum_getquorate.3.in | 2 +- + man/sam_data_store.3.in | 2 +- + man/sam_hc_callback_register.3.in | 4 ++-- + man/sam_hc_send.3.in | 4 ++-- + man/sam_overview.8 | 2 +- + man/votequorum.5 | 2 +- + man/votequorum_context_set.3.in | 2 +- + man/votequorum_dispatch.3.in | 2 +- + man/votequorum_finalize.3.in | 2 +- + man/votequorum_initialize.3.in | 2 +- + 36 files changed, 47 insertions(+), 47 deletions(-) + +diff --git a/man/cmap_context_set.3.in b/man/cmap_context_set.3.in +index da1f60c..cacef0d 100644 +--- a/man/cmap_context_set.3.in ++++ b/man/cmap_context_set.3.in +@@ -48,7 +48,7 @@ cmap_context_set (cmap_handle_t \fIhandle\fB, const void *\fIcontext\fB);\fR + .SH DESCRIPTION + .P + The \fBcmap_context_set\fR function is used to store the context variable for cmap instance. +-It has no meaning insire libcmap itself and will not be touched by the library. It can ++It has no meaning inside libcmap itself and will not be touched by the library. It can + be retrieved using + .B cmap_context_get(3). + +diff --git a/man/cmap_dec.3.in b/man/cmap_dec.3.in +index 614c96e..c832241 100644 +--- a/man/cmap_dec.3.in ++++ b/man/cmap_dec.3.in +@@ -82,7 +82,7 @@ Overflow/underflow is not detected and it's ignored. + This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM + is returned. CS_ERR_NOT_EXIST error is returned if key doesn't exist (wasn't created by calling + .B cmap_set(3) +-first). Some of keys may be tagged read-only directly in corosync and seting such key will result in ++first). Some of keys may be tagged read-only directly in corosync and setting such key will result in + CS_ERR_ACCESS error. + + .SH "SEE ALSO" +diff --git a/man/cmap_delete.3.in b/man/cmap_delete.3.in +index e2ee07d..a6ae710 100644 +--- a/man/cmap_delete.3.in ++++ b/man/cmap_delete.3.in +@@ -60,7 +60,7 @@ function. + is name of key to delete. + + .SH RETURN VALUE +-This call returns the CS_OK value if successful. If key_name is unspecified, CS_ERR_INVALID_PARAM ++This call returns the CS_OK value if successful. If key_name is unspecified, CS_ERR_INVALID_PARAM + is returned. For nonexisting keys, CS_ERR_NOT_EXIST error is returned. Some of keys may be tagged + read-only directly in corosync and deleting such key will result in CS_ERR_ACCESS error. + +diff --git a/man/cmap_dispatch.3.in b/man/cmap_dispatch.3.in +index b791a5e..b4fa2ba 100644 +--- a/man/cmap_dispatch.3.in ++++ b/man/cmap_dispatch.3.in +@@ -50,7 +50,7 @@ The + .B cmap_dispatch + function is used to dispatch configuration changes. + .PP +-Each application may have several connections to the CMAP API. Each application ++Each application may have several connections to the CMAP API. Each application + uses the + .I handle + argument to uniquely identify the connection. +diff --git a/man/cmap_get.3.in b/man/cmap_get.3.in +index f3615a6..15c73e6 100644 +--- a/man/cmap_get.3.in ++++ b/man/cmap_get.3.in +@@ -127,7 +127,7 @@ then nothing is stored. Type can be one of: + .PP + \fBCMAP_VALUETYPE_BINARY\fR - Binary data, byte with zero value has no special meaning + +-Sortcut functions tests cmap type with it's own type. If type didn't match, CS_ERR_INVALID_PARAM error ++Shortcut functions tests cmap type with it's own type. If type didn't match, CS_ERR_INVALID_PARAM error + is returned. No conversions are done, so for example + .B cmap_get_int16 + is not able to return value with +diff --git a/man/cmap_inc.3.in b/man/cmap_inc.3.in +index 0320065..69ac851 100644 +--- a/man/cmap_inc.3.in ++++ b/man/cmap_inc.3.in +@@ -82,7 +82,7 @@ Overflow/underflow is not detected and it's ignored. + This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM + is returned. CS_ERR_NOT_EXIST error is returned if key doesn't exist (wasn't created by calling + .B cmap_set(3) +-first). Some of keys may be tagged read-only directly in corosync and seting such key will result in ++first). Some of keys may be tagged read-only directly in corosync and setting such key will result in + CS_ERR_ACCESS error. + + .SH "SEE ALSO" +diff --git a/man/cmap_initialize.3.in b/man/cmap_initialize.3.in +index 8bdb017..b6342e9 100644 +--- a/man/cmap_initialize.3.in ++++ b/man/cmap_initialize.3.in +@@ -48,7 +48,7 @@ cmap_initialize \- Initialize CMAP API + .P + The \fBcmap_initialize\fR function is used to initialize a connection to + the Configuration Map API. Each application may have several connections to the CMAP API. +-Each application uses the ++Each application uses the + .I handle + argument to uniquely identify the connection. The + .I handle +diff --git a/man/cmap_iter_finalize.3.in b/man/cmap_iter_finalize.3.in +index 51cd590..8b03d01 100644 +--- a/man/cmap_iter_finalize.3.in ++++ b/man/cmap_iter_finalize.3.in +@@ -49,7 +49,7 @@ cmap_iter_finalize (cmap_handle_t \fIhandle\fB, cmap_iter_handle_t \fIiter_handl + .P + The + .B cmap_iter_finalize +-function is used to free up memory asociated with iteration obtained by calling of ++function is used to free up memory associated with iteration obtained by calling of + .B cmap_iter_init(3) + function. + The +diff --git a/man/cmap_iter_next.3.in b/man/cmap_iter_next.3.in +index edc29f8..b09a584 100644 +--- a/man/cmap_iter_next.3.in ++++ b/man/cmap_iter_next.3.in +@@ -60,8 +60,8 @@ argument is iterator handle obtained by + .B cmap_iter_init(3) + function. Following key name is stored inside + .I key_name +-argument, which must be preallocated by caller and its quaranted maximum size is CMAP_KEYNAME_MAXLEN +-(urrently 255). ++argument, which must be preallocated by caller and its guaranteed maximum size is CMAP_KEYNAME_MAXLEN ++(currently 255). + .I value_len + is pointer where length of value is stored, but can be NULL. + .I type +diff --git a/man/cmap_keys.8 b/man/cmap_keys.8 +index 7517788..b0cd721 100644 +--- a/man/cmap_keys.8 ++++ b/man/cmap_keys.8 +@@ -282,7 +282,7 @@ entries has uidgid.* prefix and a configuration file reload doesn't affect them. + .TP + quorum.cancel_wait_for_all + Tells votequorum to cancel waiting for all nodes at cluster startup. Can be used +-to unblock quorum if notes are known to be down. for pcs use only. ++to unblock quorum if notes are known to be down. For pcs use only. + + .TP + config.reload_in_progress +diff --git a/man/cmap_set.3.in b/man/cmap_set.3.in +index 8dcb88c..e854cf5 100644 +--- a/man/cmap_set.3.in ++++ b/man/cmap_set.3.in +@@ -119,7 +119,7 @@ which gives type of value. It may be one of: + .SH RETURN VALUE + This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM + is returned. Too short or too long key_name returns CS_ERR_NAME_TOO_LONG error code. Some of keys may +-be tagged read-only directly in corosync and seting such key will result in CS_ERR_ACCESS error. ++be tagged read-only directly in corosync and setting such key will result in CS_ERR_ACCESS error. + + .SH "SEE ALSO" + .BR cmap_get (3), +diff --git a/man/cmap_track_add.3.in b/man/cmap_track_add.3.in +index 0cf9fa8..32b35d0 100644 +--- a/man/cmap_track_add.3.in ++++ b/man/cmap_track_add.3.in +@@ -120,7 +120,7 @@ is \fBCMAP_TRACK_DELETE\fR. + .I old_value + is previous value of key or unset if + .I event +-is \fBCMAP_TRACK_ADD\fR or for some special keys set directly by Corosync due to speed optimalizations. ++is \fBCMAP_TRACK_ADD\fR or for some special keys set directly by Corosync due to speed optimizations. + Both + .I new_value + and +diff --git a/man/corosync-notifyd.8 b/man/corosync-notifyd.8 +index 0bb0cfb..822d138 100644 +--- a/man/corosync-notifyd.8 ++++ b/man/corosync-notifyd.8 +@@ -39,7 +39,7 @@ corosync-notifyd \- Listen for important corosync events and send dbus and/or sn + .SH DESCRIPTION + .B corosync-notifyd + uses corosync API to listen for important cluster events and can log them, +-generate dbus signals or genterate snmp traps. ++generate dbus signals or generate snmp traps. + .SH OPTIONS + .TP + .B -f +diff --git a/man/corosync-qdevice.8 b/man/corosync-qdevice.8 +index fbeb328..20024af 100644 +--- a/man/corosync-qdevice.8 ++++ b/man/corosync-qdevice.8 +@@ -226,7 +226,7 @@ qnetd server then we return a vote. + If more than one node can see the qnetd server but some nodes can't + see each other then the cluster is divided up into 'partitions' based on + their ring_id and this algorithm returns a vote to the largest active partition or, +-if there is more than 1 equal partiton, the partition that contains the tie_breaker ++if there is more than 1 equal partition, the partition that contains the tie_breaker + node (lowest, highest, etc). For LMS to work, the number + of qdevice votes has to be set to default (so just delete + .B quorum.device.votes +diff --git a/man/corosync.8 b/man/corosync.8 +index 41f634f..b5451ad 100644 +--- a/man/corosync.8 ++++ b/man/corosync.8 +@@ -38,7 +38,7 @@ corosync \- The Corosync Cluster Engine. + .B "corosync [\-f] [\-p] [\-r] [\-v]" + .SH DESCRIPTION + .B corosync +-Corosync provides clustering infracture such as membership, messaging and quorum. ++Corosync provides clustering infrastructure such as membership, messaging and quorum. + .SH OPTIONS + .TP + .B -f +diff --git a/man/corosync.conf.5 b/man/corosync.conf.5 +index 00a7a38..55b21f2 100644 +--- a/man/corosync.conf.5 ++++ b/man/corosync.conf.5 +@@ -346,7 +346,7 @@ The default is 50 milliseconds. + .TP + send_join + This timeout specifies in milliseconds an upper range between 0 and send_join +-to wait before sending a join message. For configurations with less then ++to wait before sending a join message. For configurations with less than + 32 nodes, this parameter is not necessary. For larger rings, this parameter + is necessary to ensure the NIC is not overflowed with join messages on + formation of a new ring. A reasonable value for large rings (128 nodes) would +@@ -362,9 +362,9 @@ achieved before starting a new round of membership configuration. The minimum + value for consensus must be 1.2 * token. This value will be automatically + calculated at 1.2 * token if the user doesn't specify a consensus value. + +-For two node clusters, a consensus larger then the join timeout but less then ++For two node clusters, a consensus larger than the join timeout but less than + token is safe. For three node or larger clusters, consensus should be larger +-then token. There is an increasing risk of odd membership changes, which stil ++than token. There is an increasing risk of odd membership changes, which still + guarantee virtual synchrony, as node count grows if consensus is less than + token. + +@@ -384,7 +384,7 @@ downcheck + This timeout specifies in milliseconds how long to wait before checking + that a network interface is back up after it has been downed. + +-The default is 1000 millseconds. ++The default is 1000 milliseconds. + + .TP + fail_recv_const +@@ -435,7 +435,7 @@ token rotation. If all processors perform equally well, this value could be + large (300), which would introduce higher latency from origination to delivery + for very large rings. To reduce latency in large rings(16+), the defaults are + a safe compromise. If 1 or more slow processor(s) are present among fast +-processors, window_size should be no larger then 256000 / netmtu to avoid ++processors, window_size should be no larger than 256000 / netmtu to avoid + overflow of the kernel receive buffers. The user is notified of this by + the display of a retransmit list in the notification logs. There is no loss + of data, but performance is reduced when these errors occur. +@@ -629,7 +629,7 @@ The subsys entry, described below, is mandatory to identify the subsystem. + .TP + subsys + This specifies the subsystem identity (name) for which logging is specified. This is the +-name used by a service in the log_init () call. E.g. 'CPG'. This directive is ++name used by a service in the log_init() call. E.g. 'CPG'. This directive is + required. + + .PP +@@ -656,7 +656,7 @@ For UDPU, every node that should be a member of the membership must be specified + Possible options are: + .TP + ringX_addr +-This specifies ip address of one of the nodes. X is ring number. ++This specifies IP address of one of the nodes. X is ring number. + + .TP + nodeid +diff --git a/man/cpg_dispatch.3.in b/man/cpg_dispatch.3.in +index f824a3f..a71ca6a 100644 +--- a/man/cpg_dispatch.3.in ++++ b/man/cpg_dispatch.3.in +@@ -44,7 +44,7 @@ The + function is used to dispatch configuration changes or messages from the + closed process groups API. + .PP +-Each application may have several connections to the CPG API. Each application ++Each application may have several connections to the CPG API. Each application + uses the + .I handle + argument to uniquely identify the connection. +diff --git a/man/cpg_initialize.3.in b/man/cpg_initialize.3.in +index 5012986..1c866cf 100644 +--- a/man/cpg_initialize.3.in ++++ b/man/cpg_initialize.3.in +@@ -46,7 +46,7 @@ and + .B cpg_model_initialize + should be used in newly written code. + .PP +-Each application may have several connections to the CPG API. Each application ++Each application may have several connections to the CPG API. Each application + uses the + .I handle + argument to uniquely identify the connection. The +diff --git a/man/cpg_iteration_finalize.3.in b/man/cpg_iteration_finalize.3.in +index 747d227..49ca64b 100644 +--- a/man/cpg_iteration_finalize.3.in ++++ b/man/cpg_iteration_finalize.3.in +@@ -49,7 +49,7 @@ cpg_iteration_finalize (cpg_iteration_handle_t \fIhandle\fB);\fR + .P + The + .B cpg_iteration_finalize +-function is used to free up memory asociated with iteration obtained by calling of ++function is used to free up memory associated with iteration obtained by calling of + .B cpg_iteration_initialize(3) + function. + The +diff --git a/man/cpg_mcast_joined.3.in b/man/cpg_mcast_joined.3.in +index dc02350..3ba44df 100644 +--- a/man/cpg_mcast_joined.3.in ++++ b/man/cpg_mcast_joined.3.in +@@ -31,7 +31,7 @@ + .\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + .\" * THE POSSIBILITY OF SUCH DAMAGE. + .\" */ +-.TH CPG_MCAST_JOINED 3 3004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" ++.TH CPG_MCAST_JOINED 3 2004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" + .SH NAME + cpg_mcast_joined \- Multicasts to all groups joined to a handle + .SH SYNOPSIS +diff --git a/man/cpg_model_initialize.3.in b/man/cpg_model_initialize.3.in +index 259f77d..76429a5 100644 +--- a/man/cpg_model_initialize.3.in ++++ b/man/cpg_model_initialize.3.in +@@ -45,7 +45,7 @@ The + .B cpg_model_initialize + function is used to initialize a connection to the closed process groups API. + .PP +-Each application may have several connections to the CPG API. Each application ++Each application may have several connections to the CPG API. Each application + uses the + .I handle + argument to uniquely identify the connection. The +diff --git a/man/cpg_zcb_alloc.3.in b/man/cpg_zcb_alloc.3.in +index e46da9c..347be2c 100644 +--- a/man/cpg_zcb_alloc.3.in ++++ b/man/cpg_zcb_alloc.3.in +@@ -58,7 +58,7 @@ requests a buffer of size be allocated. + .PP + The + .I buffer +-argument is set to the buffer address that is allocated by this operatoin. ++argument is set to the buffer address that is allocated by this operation. + + .SH RETURN VALUE + This call returns the CS_OK value if successful, otherwise an error is returned. +diff --git a/man/cpg_zcb_mcast_joined.3.in b/man/cpg_zcb_mcast_joined.3.in +index 158131c..afb4454 100644 +--- a/man/cpg_zcb_mcast_joined.3.in ++++ b/man/cpg_zcb_mcast_joined.3.in +@@ -31,7 +31,7 @@ + .\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + .\" * THE POSSIBILITY OF SUCH DAMAGE. + .\" */ +-.TH CPG_ZCB_MCAST_JOINED 3 3004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" ++.TH CPG_ZCB_MCAST_JOINED 3 2004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" + .SH NAME + cpg_mcast_joined \- Multicasts a zero copy buffer to all groups joined to a handle + .SH SYNOPSIS +diff --git a/man/ipc_common.sh.errors b/man/ipc_common.sh.errors +index 0c73358..55d4510 100644 +--- a/man/ipc_common.sh.errors ++++ b/man/ipc_common.sh.errors +@@ -13,13 +13,13 @@ Permission denied + The connection failed + + .B CS_ERR_INTERRUPT +-System call inturrupted by a signal ++System call interrupted by a signal + + .B CS_ERR_NOT_SUPPORTED +-The requested protocol/functuality not supported ++The requested protocol/functionality not supported + + .B CS_ERR_MESSAGE_ERROR + Incorrect auth message received + + .B CS_ERR_NO_MEMORY +-Not enough memory to completed the requested task ++Not enough memory to complete the requested task +diff --git a/man/quorum_context_set.3.in b/man/quorum_context_set.3.in +index 6a57e92..57fe35c 100644 +--- a/man/quorum_context_set.3.in ++++ b/man/quorum_context_set.3.in +@@ -42,7 +42,7 @@ quorum_context_set \- Sets the context variable for a QUORUM instance + The + .B quorum_context_set + function is used to set the context variable for a quorum instance. It has no +-meaning insire libquorum itself and will not be touched by the library. It can ++meaning inside libquorum itself and will not be touched by the library. It can + be retrieved using + .B quorum_context_get(3) + .SH RETURN VALUE +diff --git a/man/quorum_dispatch.3.in b/man/quorum_dispatch.3.in +index 34d9908..319e460 100644 +--- a/man/quorum_dispatch.3.in ++++ b/man/quorum_dispatch.3.in +@@ -43,7 +43,7 @@ The + .B quorum_dispatch + function is used to dispatch configuration changes. + .PP +-Each application may have several connections to the quorum API. Each application ++Each application may have several connections to the quorum API. Each application + uses the + .I handle + argument to uniquely identify the connection. +diff --git a/man/quorum_getquorate.3.in b/man/quorum_getquorate.3.in +index ec87486..b1c0c74 100644 +--- a/man/quorum_getquorate.3.in ++++ b/man/quorum_getquorate.3.in +@@ -41,7 +41,7 @@ quorum_getquorate \- Gets the quorate status of the node. + .SH DESCRIPTION + The + .B quorum_getquorate +-function is used to retrieve the quorate status of the node. quorate is 0 if the node ++function is used to retrieve the quorate status of the node. Quorate is 0 if the node + is not part of a quorate partition or 1 otherwise. + .SH RETURN VALUE + This call returns the CS_OK value if successful, otherwise an error is returned. +diff --git a/man/sam_data_store.3.in b/man/sam_data_store.3.in +index 6e90651..88ab7aa 100644 +--- a/man/sam_data_store.3.in ++++ b/man/sam_data_store.3.in +@@ -73,7 +73,7 @@ CS_ERR_BAD_HANDLE + component was not initialized by calling \fBsam_initialize(3)\fR or it was finalized. + .TP + CS_ERR_NO_MEMORY +-internal malloc/realloc failed because data are too large ++internal malloc/realloc failed because data are too large + .TP + CS_ERR_LIBRARY + some internal error appeared (mostly because communication with parent process failed) +diff --git a/man/sam_hc_callback_register.3.in b/man/sam_hc_callback_register.3.in +index 91be22d..c9f5619 100644 +--- a/man/sam_hc_callback_register.3.in ++++ b/man/sam_hc_callback_register.3.in +@@ -60,7 +60,7 @@ defined as: + .fi + + .P +-This function will be regulargly called and must return 0 if the process is ++This function will be regularly called and must return 0 if the process is + functioning normally, or -1 if the process is executing abnormally. When -1 is + returned, the SAM server execute the registered recovery policy. + +@@ -79,7 +79,7 @@ CS_ERR_BAD_HANDLE + SAM was not initialized and registered or health checking is in running state + .TP + CS_ERR_LIBRARY +-internal library call failed. This can occur during fork() or pipe () system ++internal library call failed. This can occur during fork() or pipe() system + calls and the errno variable can be read to retrieve more information. + + .SH "SEE ALSO" +diff --git a/man/sam_hc_send.3.in b/man/sam_hc_send.3.in +index c8e9131..dfcf93c 100644 +--- a/man/sam_hc_send.3.in ++++ b/man/sam_hc_send.3.in +@@ -47,8 +47,8 @@ sam_hc_send \- Send health check confirmation + .SH DESCRIPTION + .P + The \fBsam_hc_send\fR function is used to send healthcheck confirmation from +-the applicatoin. This function should be called reguarly when configured for +-application driven healthchecking, otherwise recovery actoin will be taken. ++the application. This function should be called regularly when configured for ++application driven healthchecking, otherwise recovery action will be taken. + + When using event driven healthchecking, this function should not be used. + +diff --git a/man/sam_overview.8 b/man/sam_overview.8 +index 490dbe4..a0b23b4 100644 +--- a/man/sam_overview.8 ++++ b/man/sam_overview.8 +@@ -153,7 +153,7 @@ keys: + Object is automatically deleted if process exits with stopped health checking. + + .P +-Confdb integration with corosync wathdog can be used in implicit and explicit way. ++Confdb integration with corosync watchdog can be used in implicit and explicit way. + + .P + Implicit way is achieved by setting recovery policy to QUIT and let process exit with started health checking. +diff --git a/man/votequorum.5 b/man/votequorum.5 +index ee4814a..fd9590e 100644 +--- a/man/votequorum.5 ++++ b/man/votequorum.5 +@@ -223,7 +223,7 @@ Example chain of events: + .PP + NOTES: In order for the cluster to downgrade automatically from 2 nodes + to a 1 node cluster, the auto_tie_breaker feature must also be enabled (see below). +-If auto_tie_breaker is not enabled, and one more failure occours, the ++If auto_tie_breaker is not enabled, and one more failure occurs, the + remaining node will not be quorate. LMS does not work with asymmetric voting + schemes, each node must vote 1. LMS is also incompatible with quorum devices, + if last_man_standing is specified in corosync.conf then the quorum device +diff --git a/man/votequorum_context_set.3.in b/man/votequorum_context_set.3.in +index df3af2b..56c6cf0 100644 +--- a/man/votequorum_context_set.3.in ++++ b/man/votequorum_context_set.3.in +@@ -42,7 +42,7 @@ votequorum_context_set \- Sets the context variable for a VOTEQUORUM instance + The + .B votequorum_context_set + function is used to set the context variable for a votequorum instance. It has no +-meaning insire libvotequorum itself and will not be touched by the library. It can ++meaning inside libvotequorum itself and will not be touched by the library. It can + be retrieved using + .B votequorum_context_get(3) + .SH RETURN VALUE +diff --git a/man/votequorum_dispatch.3.in b/man/votequorum_dispatch.3.in +index 38677b4..132c8d1 100644 +--- a/man/votequorum_dispatch.3.in ++++ b/man/votequorum_dispatch.3.in +@@ -43,7 +43,7 @@ The + .B votequorum_dispatch + function is used to dispatch configuration changes. + .PP +-Each application may have several connections to the votequorum API. Each application ++Each application may have several connections to the votequorum API. Each application + uses the + .I handle + argument to uniquely identify the connection. +diff --git a/man/votequorum_finalize.3.in b/man/votequorum_finalize.3.in +index 0164f59..50e431f 100644 +--- a/man/votequorum_finalize.3.in ++++ b/man/votequorum_finalize.3.in +@@ -41,7 +41,7 @@ votequorum_finalize \- Terminate a connection to the votequorum service + .SH DESCRIPTION + The + .B votequorum_finalize +-function is used to close a connection to the configuration dabatase API. ++function is used to close a connection to the configuration database API. + Once the connection is finalized, the handle may not be used again by applications. + No more callbacks will be dispatched from the + .B votequorum_dispatch +diff --git a/man/votequorum_initialize.3.in b/man/votequorum_initialize.3.in +index 811b3e3..88e1eb1 100644 +--- a/man/votequorum_initialize.3.in ++++ b/man/votequorum_initialize.3.in +@@ -89,7 +89,7 @@ nodes that are included in the sync state - ie only active nodes. No quorum info + because it is not available at that time. + The 'quorum' callback is sent after the cluster state transition has completed and does contain quorum information. + In addition, the nodelist contains a list of all nodes known to votequorum (whether up or down) and their state as well +-as information about the quorum device attached (if any). quorum callbacks will not be sent for qdevice up and down ++as information about the quorum device attached (if any). Quorum callbacks will not be sent for qdevice up and down + events unless they affect quorum. + + .PP +-- +1.7.1 + diff --git a/SOURCES/bz1434529-2-Fix-typo-Destorying-Destroying.patch b/SOURCES/bz1434529-2-Fix-typo-Destorying-Destroying.patch new file mode 100644 index 0000000..7d09681 --- /dev/null +++ b/SOURCES/bz1434529-2-Fix-typo-Destorying-Destroying.patch @@ -0,0 +1,31 @@ +From 117d9e4eb77ef9941fdeaf17ddfd892514da8143 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ferenc=20W=C3=A1gner?= +Date: Sun, 30 Oct 2016 13:33:40 +0100 +Subject: [PATCH] Fix typo: Destorying -> Destroying +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Ferenc Wágner +Reviewed-by: Jan Friesse +(cherry picked from commit 66c6a9b20063a271eadde7cca7a6abda5bc5512e) +--- + qdevices/corosync-qdevice.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/qdevices/corosync-qdevice.c b/qdevices/corosync-qdevice.c +index fd932f1..6b1f7a5 100644 +--- a/qdevices/corosync-qdevice.c ++++ b/qdevices/corosync-qdevice.c +@@ -246,7 +246,7 @@ main(int argc, char * const argv[]) + return (1); + } + +- qdevice_log(LOG_DEBUG, "Destorying qdevice model"); ++ qdevice_log(LOG_DEBUG, "Destroying qdevice model"); + qdevice_model_destroy(&instance); + + qdevice_ipc_destroy(&instance); +-- +1.7.1 + diff --git a/SOURCES/bz1434529-3-init-Add-doc-URIs-to-the-systemd-service-files.patch b/SOURCES/bz1434529-3-init-Add-doc-URIs-to-the-systemd-service-files.patch new file mode 100644 index 0000000..430b5d4 --- /dev/null +++ b/SOURCES/bz1434529-3-init-Add-doc-URIs-to-the-systemd-service-files.patch @@ -0,0 +1,67 @@ +From 21a728785027483786e41c19f6aff57a95b80aa5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ferenc=20W=C3=A1gner?= +Date: Wed, 18 May 2016 22:59:40 +0200 +Subject: [PATCH] init: Add doc URIs to the systemd service files +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +These are used by systemctl help. + +Signed-off-by: Ferenc Wágner +Reviewed-by: Jan Friesse +(cherry picked from commit 8a940f9a18bdcdabef31f796e3572070e72d487b) +--- + init/corosync-notifyd.service.in | 1 + + init/corosync-qdevice.service.in | 1 + + init/corosync-qnetd.service.in | 1 + + init/corosync.service.in | 1 + + 4 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/init/corosync-notifyd.service.in b/init/corosync-notifyd.service.in +index ce576fe..689ab8e 100644 +--- a/init/corosync-notifyd.service.in ++++ b/init/corosync-notifyd.service.in +@@ -1,5 +1,6 @@ + [Unit] + Description=Corosync Dbus and snmp notifier ++Documentation=man:corosync-notifyd + Wants=corosync.service + After=corosync.service + +diff --git a/init/corosync-qdevice.service.in b/init/corosync-qdevice.service.in +index 54bec69..8de4e5b 100644 +--- a/init/corosync-qdevice.service.in ++++ b/init/corosync-qdevice.service.in +@@ -1,5 +1,6 @@ + [Unit] + Description=Corosync Qdevice daemon ++Documentation=man:corosync-qdevice + ConditionKernelCommandLine=!nocluster + Wants=corosync.service + After=corosync.service +diff --git a/init/corosync-qnetd.service.in b/init/corosync-qnetd.service.in +index 8374910..c6cf8c9 100644 +--- a/init/corosync-qnetd.service.in ++++ b/init/corosync-qnetd.service.in +@@ -1,5 +1,6 @@ + [Unit] + Description=Corosync Qdevice Network daemon ++Documentation=man:corosync-qnetd + ConditionKernelCommandLine=!nocluster + Requires=network-online.target + After=network-online.target +diff --git a/init/corosync.service.in b/init/corosync.service.in +index d71a857..12193b1 100644 +--- a/init/corosync.service.in ++++ b/init/corosync.service.in +@@ -1,5 +1,6 @@ + [Unit] + Description=Corosync Cluster Engine ++Documentation=man:corosync man:corosync.conf man:corosync_overview + ConditionKernelCommandLine=!nocluster + Requires=network-online.target + After=network-online.target +-- +1.7.1 + diff --git a/SOURCES/bz1434529-4-man-Modify-man-page-according-to-command-usage.patch b/SOURCES/bz1434529-4-man-Modify-man-page-according-to-command-usage.patch new file mode 100644 index 0000000..b2309da --- /dev/null +++ b/SOURCES/bz1434529-4-man-Modify-man-page-according-to-command-usage.patch @@ -0,0 +1,349 @@ +From 79898e8cb1715e79b7467b91661b7341e2664550 Mon Sep 17 00:00:00 2001 +From: Takeshi MIZUTA +Date: Thu, 1 Dec 2016 02:45:16 +0900 +Subject: [PATCH] man: Modify man-page according to command usage + +Signed-off-by: Takeshi MIZUTA +Reviewed-by: Jan Friesse +(cherry picked from commit 034553c0808dfcf27441925b05ae095901dee3f4) +--- + exec/main.c | 2 +- + man/corosync-cfgtool.8 | 22 ++++++++-------------- + man/corosync-cmapctl.8 | 2 +- + man/corosync-cpgtool.8 | 8 ++++---- + man/corosync-keygen.8 | 5 ++++- + man/corosync-notifyd.8 | 6 +++--- + man/corosync-quorumtool.8 | 8 +++++++- + man/corosync.8 | 2 +- + tools/corosync-cfgtool.c | 11 +++++++---- + tools/corosync-cmapctl.c | 2 +- + tools/corosync-cpgtool.c | 2 +- + tools/corosync-keygen.c | 5 +++-- + tools/corosync-notifyd.c | 4 ++-- + tools/corosync-quorumtool.c | 7 ++++--- + 14 files changed, 47 insertions(+), 39 deletions(-) + +diff --git a/exec/main.c b/exec/main.c +index 82fb808..ca54a47 100644 +--- a/exec/main.c ++++ b/exec/main.c +@@ -1185,8 +1185,8 @@ int main (int argc, char **argv, char **envp) + "usage:\n"\ + " -f : Start application in foreground.\n"\ + " -p : Do not set process priority.\n"\ +- " -t : Test configuration and exit.\n"\ + " -r : Set round robin realtime scheduling (default).\n"\ ++ " -t : Test configuration and exit.\n"\ + " -v : Display version and SVN revision of Corosync and exit.\n"); + logsys_system_fini(); + return EXIT_FAILURE; +diff --git a/man/corosync-cfgtool.8 b/man/corosync-cfgtool.8 +index 6df8651..b190766 100644 +--- a/man/corosync-cfgtool.8 ++++ b/man/corosync-cfgtool.8 +@@ -35,14 +35,11 @@ + .SH "NAME" + corosync-cfgtool \- An administrative tool for corosync. + .SH "SYNOPSIS" +-.B corosync\-cfgtool [\-i] [IP_address] [\-s] [\-r] [\-l] [\-u] [\-H] [service_name] [\-v] [version] [\-k] [nodeid] [\-a] [nodeid] ++.B corosync\-cfgtool [\-i IP_address] [\-s] [\-r] [\-R] [\-k nodeid] [\-a nodeid] [\-h] [\-H] + .SH "DESCRIPTION" + .B corosync\-cfgtool + A tool for displaying and configuring active parameters within corosync. + .SH "OPTIONS" +-.TP +-.B -h +-Print basic usage. + .TP + .B -i + Finds only information about the specified interface IP address. +@@ -56,20 +53,17 @@ to the shell. + Reset redundant ring state cluster wide after a fault to + re-enable redundant ring operation. + .TP +-.B -l +-Load a service identified by "service_name". +-.TP +-.B -u +-Unload a service identified by "service_name". +-.TP +-.B -a +-Display the IP address(es) of a node. ++.B -R ++Tell all instances of corosync in this cluster to reload corosync.conf. + .TP + .B -k + Kill a node identified by node id. + .TP +-.B -R +-Tell all instances of corosync in this cluster to reload corosync.conf ++.B -a ++Display the IP address(es) of a node. ++.TP ++.B -h ++Print basic usage. + .TP + .B -H + Shutdown corosync cleanly on this node. +diff --git a/man/corosync-cmapctl.8 b/man/corosync-cmapctl.8 +index 661137c..ed97fad 100644 +--- a/man/corosync-cmapctl.8 ++++ b/man/corosync-cmapctl.8 +@@ -35,7 +35,7 @@ + .SH NAME + corosync-cmapctl: \- A tool for accessing the object database. + .SH DESCRIPTION +-usage: corosync\-cmapctl [\-b] [\-dghsTtp] [params...] ++usage: corosync\-cmapctl [\-b] [\-DdghsTt] [\-p filename] [params...] + .HP + \fB\-b\fR show binary values + .SS "Set key:" +diff --git a/man/corosync-cpgtool.8 b/man/corosync-cpgtool.8 +index 8ef32d1..3a62752 100644 +--- a/man/corosync-cpgtool.8 ++++ b/man/corosync-cpgtool.8 +@@ -41,17 +41,17 @@ corosync-cpgtool \- A tool for displaying cpg groups and members. + A tool for displaying cpg groups and members. + .SH OPTIONS + .TP +-.B -h +-Display this help. +-.TP + .B -d + Delimiter between fields. + .TP + .B -e +-Don't escape unprintable characters in group name ++Don't escape unprintable characters in group name. + .TP + .B -n + Display only all existing group names. ++.TP ++.B -h ++Display this help. + .SH EXAMPLES + .TP + Display the groups and process that belong to those cpg groups. +diff --git a/man/corosync-keygen.8 b/man/corosync-keygen.8 +index 5aaae93..ed04620 100644 +--- a/man/corosync-keygen.8 ++++ b/man/corosync-keygen.8 +@@ -35,7 +35,7 @@ + .SH NAME + corosync-keygen \- Generate an authentication key for Corosync. + .SH SYNOPSIS +-.B "corosync-keygen [\-k ] [\-l]" ++.B "corosync-keygen [\-k ] [\-l] [\-h]" + .SH DESCRIPTION + + If you want to configure corosync to use cryptographic techniques to ensure authenticity +@@ -70,6 +70,9 @@ The default is /etc/corosync/authkey. + Use a less secure random data source that will not require user input to help generate + entropy. This may be useful when this utility is used from a script or hardware random number + generator is not available (f.e. in virtual machine). ++.TP ++.B -h ++Print basic usage. + + .SH EXAMPLES + .TP +diff --git a/man/corosync-notifyd.8 b/man/corosync-notifyd.8 +index 822d138..40d8d79 100644 +--- a/man/corosync-notifyd.8 ++++ b/man/corosync-notifyd.8 +@@ -35,7 +35,7 @@ + .SH NAME + corosync-notifyd \- Listen for important corosync events and send dbus and/or snmp traps. + .SH SYNOPSIS +-.B "corosync-notifyd [\-f] [\-l] [\-o] [\-s] [\-m] [manager] [\-d] [-h]" ++.B "corosync-notifyd [\-f] [\-l] [\-o] [\-s] [\-m manager] [\-d] [-h]" + .SH DESCRIPTION + .B corosync-notifyd + uses corosync API to listen for important cluster events and can log them, +@@ -55,13 +55,13 @@ Print events to stdout (turns on -l). + Send SNMP traps on all events. + .TP + .B -m +-Set the SNMP manager address. ++Set the SNMP Manager IP address (defaults to localhost). + .TP + .B -d + Send DBUS signals on all events. + .TP + .B -h +-Print this help ++Print this help. + .SH EXAMPLES + .br + $ corosync-notifyd -o +diff --git a/man/corosync-quorumtool.8 b/man/corosync-quorumtool.8 +index 9707a70..88264b0 100644 +--- a/man/corosync-quorumtool.8 ++++ b/man/corosync-quorumtool.8 +@@ -35,7 +35,7 @@ + .SH NAME + corosync-quorumtool \- Set and display quorum settings. + .SH SYNOPSIS +-.B "corosync-quorumtool [\-s] [\-m] [\-l] [\-p] [\-v votes] [\-n nodeid] [\-e expected] [\-h] [\-i] [\-o ] [\-V]" ++.B "corosync-quorumtool [\-s] [\-m] [\-l] [\-p] [\-v votes] [\-n nodeid] [\-e expected] [\-H] [\-i] [\-o ] [\-f] [\-h] [\-V]" + .SH DESCRIPTION + Display the current state of quorum in the cluster and set vote quorum options. + .SH OPTIONS +@@ -49,6 +49,9 @@ constantly monitor quorum status + .B -l + list nodes + .TP ++.B -p ++when used with -s or -l, generates machine parsable output ++.TP + .B -v + change the number of votes for a node * + .TP +@@ -72,6 +75,9 @@ Orders the output of the nodes list. By default or with -oa nodes are listed in + order: as they come from corosync. -on will order the nodes based on their name, + and -oi will order them based on their node ID. + .TP ++.B -f ++forcefully unregister a quorum device *DANGEROUS* * ++.TP + .B -h (if no other argument) + show this help text + .TP +diff --git a/man/corosync.8 b/man/corosync.8 +index b5451ad..89ab771 100644 +--- a/man/corosync.8 ++++ b/man/corosync.8 +@@ -35,7 +35,7 @@ + .SH NAME + corosync \- The Corosync Cluster Engine. + .SH SYNOPSIS +-.B "corosync [\-f] [\-p] [\-r] [\-v]" ++.B "corosync [\-f] [\-p] [\-r] [\-t] [\-v]" + .SH DESCRIPTION + .B corosync + Corosync provides clustering infrastructure such as membership, messaging and quorum. +diff --git a/tools/corosync-cfgtool.c b/tools/corosync-cfgtool.c +index 94ffce4..201977b 100644 +--- a/tools/corosync-cfgtool.c ++++ b/tools/corosync-cfgtool.c +@@ -261,15 +261,17 @@ static void killnode_do(unsigned int nodeid) + + static void usage_do (void) + { +- printf ("corosync-cfgtool [-i ] -s] [-r] [-H] [service_name] [-k] [nodeid] [-a] [nodeid]\n\n"); ++ printf ("corosync-cfgtool [-i ] [-s] [-r] [-R] [-k nodeid] [-a nodeid] [-h] [-H]\n\n"); + printf ("A tool for displaying and configuring active parameters within corosync.\n"); + printf ("options:\n"); ++ printf ("\t-i\tFinds only information about the specified interface IP address.\n"); + printf ("\t-s\tDisplays the status of the current rings on this node.\n"); + printf ("\t-r\tReset redundant ring state cluster wide after a fault to\n"); + printf ("\t\tre-enable redundant ring operation.\n"); +- printf ("\t-a\tDisplay the IP address(es) of a node\n"); ++ printf ("\t-R\tTell all instances of corosync in this cluster to reload corosync.conf.\n"); + printf ("\t-k\tKill a node identified by node id.\n"); +- printf ("\t-R\tReload corosync.conf on all nodes.\n"); ++ printf ("\t-a\tDisplay the IP address(es) of a node\n"); ++ printf ("\t-h\tPrint basic usage.\n"); + printf ("\t-H\tShutdown corosync cleanly on this node.\n"); + } + +@@ -306,7 +308,8 @@ int main (int argc, char *argv[]) { + shutdown_do(); + break; + case 'a': +- showaddrs_do( atoi(optarg) ); ++ nodeid = atoi (optarg); ++ showaddrs_do(nodeid); + break; + case 'h': + usage_do(); +diff --git a/tools/corosync-cmapctl.c b/tools/corosync-cmapctl.c +index d31a73d..af0aa14 100644 +--- a/tools/corosync-cmapctl.c ++++ b/tools/corosync-cmapctl.c +@@ -96,7 +96,7 @@ static int convert_name_to_type(const char *name) + static int print_help(void) + { + printf("\n"); +- printf("usage: corosync-cmapctl [-b] [-dghsTtp] [params...]\n"); ++ printf("usage: corosync-cmapctl [-b] [-DdghsTt] [-p filename] [params...]\n"); + printf("\n"); + printf(" -b show binary values\n"); + printf("\n"); +diff --git a/tools/corosync-cpgtool.c b/tools/corosync-cpgtool.c +index 719d10b..a5fc118 100644 +--- a/tools/corosync-cpgtool.c ++++ b/tools/corosync-cpgtool.c +@@ -198,7 +198,7 @@ static void usage_do (const char *prog_name) + printf ("A tool for displaying cpg groups and members.\n"); + printf ("options:\n"); + printf ("\t-d\tDelimiter between fields.\n"); +- printf ("\t-e\tDon't escape unprintable characters in group name\n"); ++ printf ("\t-e\tDon't escape unprintable characters in group name.\n"); + printf ("\t-n\tDisplay only all existing group names.\n"); + printf ("\t-h\tDisplay this help.\n"); + } +diff --git a/tools/corosync-keygen.c b/tools/corosync-keygen.c +index 668d6e9..695ed31 100644 +--- a/tools/corosync-keygen.c ++++ b/tools/corosync-keygen.c +@@ -50,13 +50,14 @@ + #define DEFAULT_KEYFILE COROSYSCONFDIR "/authkey" + + static const char usage[] = +- "Usage: corosync-keygen [-k ] [-l]\n" ++ "Usage: corosync-keygen [-k ] [-l] [-h]\n" + " -k / --key-file= - Write to the specified keyfile\n" + " instead of the default " DEFAULT_KEYFILE ".\n" + " -l / --less-secure - Use a less secure random number source\n" + " (/dev/urandom) that is guaranteed not to require user\n" + " input for entropy. This can be used when this\n" +- " application is used from a script.\n"; ++ " application is used from a script.\n" ++ " -h / --help - Print basic usage.\n"; + + + int main (int argc, char *argv[]) +diff --git a/tools/corosync-notifyd.c b/tools/corosync-notifyd.c +index 783c637..507a248 100644 +--- a/tools/corosync-notifyd.c ++++ b/tools/corosync-notifyd.c +@@ -1093,9 +1093,9 @@ _cs_usage(void) + " -l : Log all events.\n"\ + " -o : Print events to stdout (turns on -l).\n"\ + " -s : Send SNMP traps on all events.\n"\ +- " -m : SNMP Manager IP address (defaults to localhost).\n"\ ++ " -m : Set the SNMP Manager IP address (defaults to localhost).\n"\ + " -d : Send DBUS signals on all events.\n"\ +- " -h : Print this help\n\n"); ++ " -h : Print this help.\n\n"); + } + + int +diff --git a/tools/corosync-quorumtool.c b/tools/corosync-quorumtool.c +index ea5ca28..5fa937d 100644 +--- a/tools/corosync-quorumtool.c ++++ b/tools/corosync-quorumtool.c +@@ -157,15 +157,16 @@ static void show_usage(const char *name) + printf(" options:\n"); + printf("\n"); + printf(" -s show quorum status\n"); +- printf(" -m monitor quorum status\n"); ++ printf(" -m constantly monitor quorum status\n"); + printf(" -l list nodes\n"); + printf(" -p when used with -s or -l, generates machine parsable output\n"); + printf(" -v change the number of votes for a node (*)\n"); +- printf(" -n optional nodeid of node for -v (*)\n"); ++ printf(" -n optional nodeid of node for -v\n"); + printf(" -e change expected votes for the cluster (*)\n"); + printf(" -H show nodeids in hexadecimal rather than decimal\n"); + printf(" -i show node IP addresses instead of the resolved name\n"); +- printf(" -o order by [a] IP address (default), [i] nodeid,\n"); ++ printf(" -p when used with -s or -l, generates machine parsable output\n"); ++ printf(" -o order by [a] IP address (default), [n] name, [i] nodeid\n"); + printf(" -f forcefully unregister a quorum device *DANGEROUS* (*)\n"); + printf(" -h show this help text\n"); + printf(" -V show version and exit\n"); +-- +1.7.1 + diff --git a/SOURCES/bz1434529-5-upstart-Add-softdog-module-loading-example.patch b/SOURCES/bz1434529-5-upstart-Add-softdog-module-loading-example.patch new file mode 100644 index 0000000..50875e4 --- /dev/null +++ b/SOURCES/bz1434529-5-upstart-Add-softdog-module-loading-example.patch @@ -0,0 +1,28 @@ +From 75474d69bebea6c9c4ef2252476ce738cf92f0f4 Mon Sep 17 00:00:00 2001 +From: yuusuke +Date: Fri, 2 Dec 2016 16:35:50 +0900 +Subject: [PATCH] upstart: Add softdog module loading example + +Signed-off-by: yuusuke +Reviewed-by: Jan Friesse +(cherry picked from commit 1d05569fa9820082d5488379f25828c78ccd5f17) +--- + init/corosync.conf.in | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/init/corosync.conf.in b/init/corosync.conf.in +index e5d7798..373565a 100644 +--- a/init/corosync.conf.in ++++ b/init/corosync.conf.in +@@ -18,6 +18,8 @@ end script + + pre-start script + mkdir -p @LOCALSTATEDIR@/run ++ # rewrite according to environment. ++ #[ -c /dev/watchdog ] || modprobe softdog + end script + + post-start script +-- +1.7.1 + diff --git a/SOURCES/bz1434529-6-Remove-deprecated-doxygen-flags.patch b/SOURCES/bz1434529-6-Remove-deprecated-doxygen-flags.patch new file mode 100644 index 0000000..a91af11 --- /dev/null +++ b/SOURCES/bz1434529-6-Remove-deprecated-doxygen-flags.patch @@ -0,0 +1,115 @@ +From b252013e42007ea7284ae54d035a30ca40f20fc0 Mon Sep 17 00:00:00 2001 +From: Richard B Winters +Date: Thu, 23 Apr 2015 18:35:22 -0400 +Subject: [PATCH] Remove deprecated doxygen flags + +Running 'doxygen -u Doxyfile.in' in the source root produces the +following results: + + - SYMBOL_CACHE_SIZE at line 301 has become obsolete. This tag + has been removed. + - SHOW_DIRECTORIES at line 507 has become obsolete. This tag + has been removed. + - HTML_ALIGN_MEMBERS at line 881 has become obsolete. This tag + has been removed. + - USE_INLINE_TREES at line 1067 has become obsolete. This tag + has been removed. + - XML_SCHEMA at line 1311 has become obsolete. This tag has been + removed. + - XML_DTD at line 1317 has become obsolete. This tag has been + removed. + +Signed-off-by: Richard B Winters +Reviewed-by: Jan Friesse +(cherry picked from commit c3775f9dad34e833e8eb3cde7db3b9fb281dee52) +--- + Doxyfile.in | 45 --------------------------------------------- + 1 files changed, 0 insertions(+), 45 deletions(-) + +diff --git a/Doxyfile.in b/Doxyfile.in +index d300fc8..c3340e0 100644 +--- a/Doxyfile.in ++++ b/Doxyfile.in +@@ -284,22 +284,6 @@ SUBGROUPING = YES + + TYPEDEF_HIDES_STRUCT = NO + +-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +-# determine which symbols to keep in memory and which to flush to disk. +-# When the cache is full, less often used symbols will be written to disk. +-# For small to medium size projects (<1000 input files) the default value is +-# probably good enough. For larger projects a too small cache size can cause +-# doxygen to be busy swapping symbols to and from disk most of the time +-# causing a significant performance penalty. +-# If the system has enough physical memory increasing the cache will improve the +-# performance by keeping more symbols in memory. Note that the value works on +-# a logarithmic scale so increasing the size by one will roughly double the +-# memory usage. The cache size is given by this formula: +-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +-# corresponding to a cache size of 2^16 = 65536 symbols +- +-SYMBOL_CACHE_SIZE = 0 +- + #--------------------------------------------------------------------------- + # Build related configuration options + #--------------------------------------------------------------------------- +@@ -500,12 +484,6 @@ MAX_INITIALIZER_LINES = 30 + + SHOW_USED_FILES = YES + +-# If the sources in your project are distributed over multiple directories +-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +-# in the documentation. The default is NO. +- +-SHOW_DIRECTORIES = NO +- + # Set the SHOW_FILES tag to NO to disable the generation of the Files page. + # This will remove the Files entry from the Quick Index and from the + # Folder Tree View (if specified). The default is YES. +@@ -874,12 +852,6 @@ HTML_COLORSTYLE_GAMMA = 80 + + HTML_TIMESTAMP = YES + +-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +-# files or namespaces will be aligned in HTML using tables. If set to +-# NO a bullet list will be used. +- +-HTML_ALIGN_MEMBERS = YES +- + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML + # documentation will contain sections that can be hidden and shown after the + # page has loaded. For this to work a browser that supports +@@ -1061,11 +1033,6 @@ ENUM_VALUES_PER_LINE = 4 + + GENERATE_TREEVIEW = NO + +-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +-# and Class Hierarchy pages using a tree view instead of an ordered list. +- +-USE_INLINE_TREES = NO +- + # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be + # used to set the initial width (in pixels) of the frame in which the tree + # is shown. +@@ -1304,18 +1271,6 @@ GENERATE_XML = NO + + XML_OUTPUT = xml + +-# The XML_SCHEMA tag can be used to specify an XML schema, +-# which can be used by a validating XML parser to check the +-# syntax of the XML files. +- +-XML_SCHEMA = +- +-# The XML_DTD tag can be used to specify an XML DTD, +-# which can be used by a validating XML parser to check the +-# syntax of the XML files. +- +-XML_DTD = +- + # If the XML_PROGRAMLISTING tag is set to YES Doxygen will + # dump the program listings (including syntax highlighting + # and cross-referencing information) to the XML output. Note that +-- +1.7.1 + diff --git a/SOURCES/bz1434529-7-Qdevice-fix-spell-errors-in-qdevice.patch b/SOURCES/bz1434529-7-Qdevice-fix-spell-errors-in-qdevice.patch new file mode 100644 index 0000000..d4132f2 --- /dev/null +++ b/SOURCES/bz1434529-7-Qdevice-fix-spell-errors-in-qdevice.patch @@ -0,0 +1,163 @@ +From d9caa09c45d4560c89a1ad873087c0476cabab46 Mon Sep 17 00:00:00 2001 +From: Bin Liu +Date: Fri, 9 Dec 2016 16:10:20 +0800 +Subject: [PATCH] Qdevice: fix spell errors in qdevice + +There are somwe spell errors in qdevice-net-algo-test.c, +qnetd-algo-2nodelms.c, qnetd-algo-test.c qnetd-algo-ffsplit.c + +Signed-off-by: Bin Liu +Reviewed-by: Jan Friesse +(cherry picked from commit 5cf587554f6fe5c0216b46a3b0546810139b3e22) +--- + qdevices/qdevice-net-algo-test.c | 12 ++++++------ + qdevices/qnetd-algo-2nodelms.c | 4 ++-- + qdevices/qnetd-algo-ffsplit.c | 4 ++-- + qdevices/qnetd-algo-test.c | 10 +++++----- + 4 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/qdevices/qdevice-net-algo-test.c b/qdevices/qdevice-net-algo-test.c +index d3bf1c4..2a33078 100644 +--- a/qdevices/qdevice-net-algo-test.c ++++ b/qdevices/qdevice-net-algo-test.c +@@ -87,7 +87,7 @@ qdevice_net_algo_test_connected(struct qdevice_net_instance *instance, int *send + * if cast_vote_timer_vote = TLV_VOTE_ACK + * vote = TLV_VOTE_NACK. + * Otherwise send_node_list = 1 and vote = TLV_VOTE_NO_CHANGE +- * If send_node_list is set to non zero, node list is send to qnetd ++ * If send_node_list is set to non zero, node list is sent to qnetd + */ + int + qdevice_net_algo_test_config_node_list_changed(struct qdevice_net_instance *instance, +@@ -112,7 +112,7 @@ qdevice_net_algo_test_config_node_list_changed(struct qdevice_net_instance *inst + * if cast_vote_timer_vote = TLV_VOTE_ACK + * vote = TLV_VOTE_NACK. + * Otherwise send_node_list = 1 and vote = TLV_VOTE_WAIT_FOR_REPLY +- * If send_node_list is set to non zero, node list is send to qnetd ++ * If send_node_list is set to non zero, node list is sent to qnetd + */ + int + qdevice_net_algo_test_votequorum_node_list_notify(struct qdevice_net_instance *instance, +@@ -140,7 +140,7 @@ qdevice_net_algo_test_votequorum_node_list_notify(struct qdevice_net_instance *i + * vote = TLV_VOTE_NACK. + * Otherwise send_node_list = 1 and vote = TLV_VOTE_NO_CHANGE + * +- * If send_node_list is set to non zero, node list is send to qnetd ++ * If send_node_list is set to non zero, node list is sent to qnetd + */ + int + qdevice_net_algo_test_votequorum_quorum_notify(struct qdevice_net_instance *instance, +@@ -172,7 +172,7 @@ qdevice_net_algo_test_votequorum_expected_votes_notify(struct qdevice_net_instan + /* + * Called when config node list reply is received. Vote is set to value returned by server (and can + * be overwriten by algorithm). ring_id is returned by server. ring_id_is_valid is set to 1 only if +- * received ring id matches last sent ring id. It usually make sense to not update timer. ++ * received ring id matches last sent ring id. It usually makes sense to not update timer. + * + * Callback should return 0 on success or -1 on failure (-> disconnect client). + */ +@@ -309,7 +309,7 @@ qdevice_net_algo_test_echo_reply_received(struct qdevice_net_instance *instance, + * Called when client is about to send echo request but echo reply to previous echo request + * was not yet received. + * +- * Callback should return 0 if processing should continue (echo request is not send but timer is ++ * Callback should return 0 if processing should continue (echo request is not sent but timer is + * scheduled again) otherwise -1 (-> disconnect client). + */ + int +@@ -322,7 +322,7 @@ qdevice_net_algo_test_echo_reply_not_received(struct qdevice_net_instance *insta + } + + /* +- * Called when client disconnect from server. ++ * Called when client disconnects from server. + * + * disconnect_reason contains one of QDEVICE_NET_DISCONNECT_REASON_ + * try_reconnect can be set to non zero value if reconnect to server should be tried +diff --git a/qdevices/qnetd-algo-2nodelms.c b/qdevices/qnetd-algo-2nodelms.c +index a62b9a9..ed759ab 100644 +--- a/qdevices/qnetd-algo-2nodelms.c ++++ b/qdevices/qnetd-algo-2nodelms.c +@@ -87,7 +87,7 @@ qnetd_algo_2nodelms_client_init(struct qnetd_client *client) + * should ask later for a vote) or wait_for_reply (client should wait for reply). + * + * Return TLV_REPLY_ERROR_CODE_NO_ERROR on success, different TLV_REPLY_ERROR_CODE_* +- * on failure (error is send back to client) ++ * on failure (error is sent back to client) + */ + enum tlv_reply_error_code + qnetd_algo_2nodelms_config_node_list_received(struct qnetd_client *client, +@@ -128,7 +128,7 @@ qnetd_algo_2nodelms_config_node_list_received(struct qnetd_client *client, + * should ask later for a vote) or wait_for_reply (client should wait for reply). + * + * Return TLV_REPLY_ERROR_CODE_NO_ERROR on success, different TLV_REPLY_ERROR_CODE_* +- * on failure (error is send back to client) ++ * on failure (error is sent back to client) + */ + + enum tlv_reply_error_code +diff --git a/qdevices/qnetd-algo-ffsplit.c b/qdevices/qnetd-algo-ffsplit.c +index 01e5f0c..6f34cf1 100644 +--- a/qdevices/qnetd-algo-ffsplit.c ++++ b/qdevices/qnetd-algo-ffsplit.c +@@ -458,8 +458,8 @@ qnetd_algo_ffsplit_update_nodes_state(struct qnetd_client *client, int client_le + + /* + * Send vote info. If client_leaving is set, client is ignored. if send_acks +- * is set, only ACK votes are send (nodes in QNETD_ALGO_FFSPLIT_CLIENT_STATE_SENDING_ACK state), +- * otherwise only NACK votes are send (nodes in QNETD_ALGO_FFSPLIT_CLIENT_STATE_SENDING_NACK state) ++ * is set, only ACK votes are sent (nodes in QNETD_ALGO_FFSPLIT_CLIENT_STATE_SENDING_ACK state), ++ * otherwise only NACK votes are sent (nodes in QNETD_ALGO_FFSPLIT_CLIENT_STATE_SENDING_NACK state) + * + * Returns number of send votes + */ +diff --git a/qdevices/qnetd-algo-test.c b/qdevices/qnetd-algo-test.c +index 816d6f6..644509f 100644 +--- a/qdevices/qnetd-algo-test.c ++++ b/qdevices/qnetd-algo-test.c +@@ -60,7 +60,7 @@ + * client is initialized qnetd_client structure. + * + * Return TLV_REPLY_ERROR_CODE_NO_ERROR on success, different TLV_REPLY_ERROR_CODE_* +- * on failure (error is send back to client) ++ * on failure (error is sent back to client) + */ + enum tlv_reply_error_code + qnetd_algo_test_client_init(struct qnetd_client *client) +@@ -137,7 +137,7 @@ qnetd_algo_test_config_node_list_received(struct qnetd_client *client, + * should ask later for a vote) or wait_for_reply (client should wait for reply). + * + * Return TLV_REPLY_ERROR_CODE_NO_ERROR on success, different TLV_REPLY_ERROR_CODE_* +- * on failure (error is send back to client) ++ * on failure (error is sent back to client) + */ + + enum tlv_reply_error_code +@@ -162,7 +162,7 @@ qnetd_algo_test_membership_node_list_received(struct qnetd_client *client, + * to use qnetd_client_send_vote_info. + * + * Return TLV_REPLY_ERROR_CODE_NO_ERROR on success, different TLV_REPLY_ERROR_CODE_* +- * on failure (error is send back to client) ++ * on failure (error is sent back to client) + */ + enum tlv_reply_error_code + qnetd_algo_test_quorum_node_list_received(struct qnetd_client *client, +@@ -229,13 +229,13 @@ qnetd_algo_test_vote_info_reply_received(struct qnetd_client *client, uint32_t m + * Called as a result of qnetd_client_algo_timer_schedule function call after timeout expires. + * + * If send_vote is set by callback to non zero value, result_vote must also be set and such vote is +- * send to client. Result_vote is ignored if send_vote = 0 (default). ++ * sent to client. Result_vote is ignored if send_vote = 0 (default). + * + * If reschedule timer (default value = 0) is set to non zero value, callback is called again later + * with same timeout as originaly created. + * + * Return TLV_REPLY_ERROR_CODE_NO_ERROR on success, different TLV_REPLY_ERROR_CODE_* +- * on failure (error is send back to client) ++ * on failure (error is sent back to client) + */ + enum tlv_reply_error_code + qnetd_algo_test_timer_callback(struct qnetd_client *client, int *reschedule_timer, +-- +1.7.1 + diff --git a/SOURCES/bz1434529-8-doc-document-watchdog_device-parameter.patch b/SOURCES/bz1434529-8-doc-document-watchdog_device-parameter.patch new file mode 100644 index 0000000..6be814d --- /dev/null +++ b/SOURCES/bz1434529-8-doc-document-watchdog_device-parameter.patch @@ -0,0 +1,52 @@ +From a5f97ae1b99063383d8f45168125b34232b91faf Mon Sep 17 00:00:00 2001 +From: Adrian Vondendriesch +Date: Tue, 17 Jan 2017 15:26:45 +0100 +Subject: [PATCH] doc: document watchdog_device parameter + +Commit 8d8d4a936ab73d8449a3574f969b17a90ef9428e introduced the +configuration parameter resources.watchdog_device. This commit +introduces the resources section and watchdog_device parameter in +corosync.conf.5. + +Signed-off-by: Adrian Vondendriesch +Reviewed-by: Jan Friesse +(cherry picked from commit 16ca44ccdc4f3ab051c866b15d948d44bf4ee020) +--- + man/corosync.conf.5 | 14 ++++++++++++++ + 1 files changed, 14 insertions(+), 0 deletions(-) + +diff --git a/man/corosync.conf.5 b/man/corosync.conf.5 +index 55b21f2..546400e 100644 +--- a/man/corosync.conf.5 ++++ b/man/corosync.conf.5 +@@ -60,6 +60,9 @@ This top level directive contains configuration options for nodes in cluster. + .TP + qb { } + This top level directive contains configuration options related to libqb. ++.TP ++resources { } ++This top level directive contains configuration options for resources. + + .PP + .PP +@@ -680,6 +683,17 @@ Native means one of shm or socket, depending on what is supported by OS. On syst + with support for both, SHM is selected. SHM is generally faster, but need to allocate + ring buffer file in /dev/shm. + ++.PP ++Within the ++.B resources ++directive it is possible to specify options for resources. ++ ++Possible option is: ++.TP ++watchdog_device ++This configuration option controls which watchdog device corosync try to bind to. ++The default value is /dev/watchdog. The value "no" disables the watchdog feature. ++ + .SH "FILES" + .TP + /etc/corosync/corosync.conf +-- +1.7.1 + diff --git a/SOURCES/bz1434534-1-Logsys-Change-logsys-syslog_priority-priority.patch b/SOURCES/bz1434534-1-Logsys-Change-logsys-syslog_priority-priority.patch new file mode 100644 index 0000000..2dc971b --- /dev/null +++ b/SOURCES/bz1434534-1-Logsys-Change-logsys-syslog_priority-priority.patch @@ -0,0 +1,39 @@ +From 609cc0cc100aa1070d97b405273373682da0e270 Mon Sep 17 00:00:00 2001 +From: Jan Friesse +Date: Fri, 24 Feb 2017 16:23:50 +0100 +Subject: [PATCH] Logsys: Change logsys syslog_priority priority + +LibQB adds default "*" syslog filter so we have to set syslog_priority +as low as possible so filters applied later in +_logsys_config_apply_per_file takes effect. + +Signed-off-by: Jan Friesse +(cherry picked from commit 8b6bd86a55b8bda9f3a8ff67bdff908263976fa3) +--- + exec/main.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/exec/main.c b/exec/main.c +index ca54a47..5126af5 100644 +--- a/exec/main.c ++++ b/exec/main.c +@@ -128,10 +128,15 @@ + #define IPC_LOGSYS_SIZE 8192*128 + #endif + ++/* ++ * LibQB adds default "*" syslog filter so we have to set syslog_priority as low ++ * as possible so filters applied later in _logsys_config_apply_per_file takes ++ * effect. ++ */ + LOGSYS_DECLARE_SYSTEM ("corosync", + LOGSYS_MODE_OUTPUT_STDERR | LOGSYS_MODE_OUTPUT_SYSLOG, + LOG_DAEMON, +- LOG_INFO); ++ LOG_EMERG); + + LOGSYS_DECLARE_SUBSYS ("MAIN"); + +-- +1.7.1 + diff --git a/SOURCES/bz1434534-2-logconfig-Do-not-overwrite-logger_subsys-priority.patch b/SOURCES/bz1434534-2-logconfig-Do-not-overwrite-logger_subsys-priority.patch new file mode 100644 index 0000000..75c6ef1 --- /dev/null +++ b/SOURCES/bz1434534-2-logconfig-Do-not-overwrite-logger_subsys-priority.patch @@ -0,0 +1,50 @@ +From c866a2f8603b44e89eb21a6cf7d88134af2e8b66 Mon Sep 17 00:00:00 2001 +From: Bin Liu +Date: Fri, 10 Mar 2017 15:22:13 +0800 +Subject: [PATCH] logconfig: Do not overwrite logger_subsys priority + +logfile_priority and syslog_priority could be modified by +logging.logger_subsys.{logfile_priority|syslog_priority}. which could +lead to the following output(which are at notice level): + +corosync[21419]: [QUORUM] Using quorum provider corosync_votequorum +corosync[21419]: [QUORUM] Members[1]: 1084777643 +corosync[21419]: [QUORUM] This node is within the primary component + and will provide service. +corosync[21419]: [QUORUM] Members[3]: 1084777563 1084777584 1084777643 + +even the syslog_priority is warning. This patch could avoid the +overwrite. + +Signed-off-by: Bin Liu +Reviewed-by: Jan Friesse +(cherry picked from commit d2a5e1442e970069d335ce3a8a67c3b9af352a34) +--- + exec/logconfig.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/exec/logconfig.c b/exec/logconfig.c +index a4d348a..6d0bed6 100644 +--- a/exec/logconfig.c ++++ b/exec/logconfig.c +@@ -401,7 +401,7 @@ static int corosync_main_config_set ( + goto parse_error; + } + } +- else { ++ else if(strcmp(key_name, "logging.syslog_priority") == 0){ + if (logsys_config_syslog_priority_set(subsys, + logsys_priority_id_get("info")) < 0) { + error_reason = "unable to set syslog level"; +@@ -449,7 +449,7 @@ static int corosync_main_config_set ( + goto parse_error; + } + } +- else { ++ else if(strcmp(key_name,"logging.logfile_priority") == 0){ + if (logsys_config_logfile_priority_set(subsys, + logsys_priority_id_get("info")) < 0) { + error_reason = "unable to set syslog level"; +-- +1.7.1 + diff --git a/SOURCES/bz1445001-1-Main-Call-mlockall-after-fork.patch b/SOURCES/bz1445001-1-Main-Call-mlockall-after-fork.patch new file mode 100644 index 0000000..feaf247 --- /dev/null +++ b/SOURCES/bz1445001-1-Main-Call-mlockall-after-fork.patch @@ -0,0 +1,51 @@ +From 238e2e62d8b960e7c10bfa0a8281d78ec99f3a26 Mon Sep 17 00:00:00 2001 +From: Andrew Price +Date: Tue, 25 Apr 2017 14:44:33 +0200 +Subject: [PATCH] Main: Call mlockall after fork + +Man page of mlockall is clear: +Memory locks are not inherited by a child created via fork(2) and are +automatically removed (unlocked) during an execve(2) or when the +process terminates. + +So calling mlockall before corosync_tty_detach is noop when corosync is +executed as a daemon (corosync -f was not affected). + +This regression is caused by ed7d054e552b4cb2a0cb502b65f84310ce6da844 +(setprio for logsys/qblog was correct, mlockall was not). + +Solution is to move corosync_mlockall call on correct place. + +Signed-off-by: Andrew Price +Reviewed-by: Christine Caulfield +Reviewed-by: Jan Friesse +(cherry picked from commit 86012ebb45c85df277eb8fe5dc5223e2fdebf25c) +--- + exec/main.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/exec/main.c b/exec/main.c +index d43cac6..602c788 100644 +--- a/exec/main.c ++++ b/exec/main.c +@@ -1177,8 +1177,6 @@ int main (int argc, char **argv, char **envp) + corosync_setscheduler (); + } + +- corosync_mlockall (); +- + /* + * Other signals are registered later via qb_loop_signal_add + */ +@@ -1310,6 +1308,8 @@ int main (int argc, char **argv, char **envp) + corosync_tty_detach (); + } + ++ corosync_mlockall (); ++ + corosync_poll_handle = qb_loop_create (); + + memset(&scheduler_pause_timeout_data, 0, sizeof(scheduler_pause_timeout_data)); +-- +1.7.1 + diff --git a/SPECS/corosync.spec b/SPECS/corosync.spec index 457df13..aa7d3b1 100644 --- a/SPECS/corosync.spec +++ b/SPECS/corosync.spec @@ -23,7 +23,7 @@ Name: corosync Summary: The Corosync Cluster Engine and Application Programming Interfaces Version: 2.4.0 -Release: 4%{?gitver}%{?dist} +Release: 9%{?gitver}%{?dist} License: BSD Group: System Environment/Base URL: http://corosync.github.io/corosync/ @@ -33,9 +33,27 @@ Patch0: bz1363654-1-Config-Flag-config-uidgid-entries.patch Patch1: bz1367813-1-Man-Fix-corosync-qdevice-net-certutil-link.patch Patch2: bz1367813-2-man-mention-qdevice-incompatibilites-in-votequorum.5.patch Patch3: bz1367813-3-Qnetd-LMS-Fix-two-partition-use-case.patch +Patch4: bz1371880-1-libvotequorum-Bump-version.patch +Patch5: bz1371880-2-votequorum-Don-t-update-expected_votes-display-if-va.patch +Patch6: bz1371880-3-votequorum-simplify-reconfigure-message-handling.patch +Patch7: bz1371880-4-build-Fix-build-on-RHEL7.3-latest.patch +Patch8: bz1434528-1-cfg-Prevents-use-of-uninitialized-buffer.patch +Patch9: bz1434529-1-man-Fix-typos-in-man-page.patch +Patch10: bz1434529-2-Fix-typo-Destorying-Destroying.patch +Patch11: bz1434529-3-init-Add-doc-URIs-to-the-systemd-service-files.patch +Patch12: bz1434529-4-man-Modify-man-page-according-to-command-usage.patch +Patch13: bz1434528-2-Totempg-remove-duplicate-memcpy-in-mcast_msg-func.patch +Patch14: bz1434529-5-upstart-Add-softdog-module-loading-example.patch +Patch15: bz1434529-6-Remove-deprecated-doxygen-flags.patch +Patch16: bz1434528-3-Remove-redundant-header-file-inclusion.patch +Patch17: bz1434529-7-Qdevice-fix-spell-errors-in-qdevice.patch +Patch18: bz1434529-8-doc-document-watchdog_device-parameter.patch +Patch19: bz1434534-1-Logsys-Change-logsys-syslog_priority-priority.patch +Patch20: bz1434534-2-logconfig-Do-not-overwrite-logger_subsys-priority.patch +Patch21: bz1445001-1-Main-Call-mlockall-after-fork.patch %if 0%{?rhel} -ExclusiveArch: i686 x86_64 s390x +ExclusiveArch: i686 x86_64 s390x ppc64le %endif # Runtime bits @@ -91,6 +109,24 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %patch1 -p1 -b .bz1367813-1 %patch2 -p1 -b .bz1367813-2 %patch3 -p1 -b .bz1367813-3 +%patch4 -p1 -b .bz1371880-1 +%patch5 -p1 -b .bz1371880-2 +%patch6 -p1 -b .bz1371880-3 +%patch7 -p1 -b .bz1371880-4 +%patch8 -p1 -b .bz1434528-1 +%patch9 -p1 -b .bz1434529-1 +%patch10 -p1 -b .bz1434529-2 +%patch11 -p1 -b .bz1434529-3 +%patch12 -p1 -b .bz1434529-4 +%patch13 -p1 -b .bz1434528-2 +%patch14 -p1 -b .bz1434529-5 +%patch15 -p1 -b .bz1434529-6 +%patch16 -p1 -b .bz1434528-3 +%patch17 -p1 -b .bz1434529-7 +%patch18 -p1 -b .bz1434529-8 +%patch19 -p1 -b .bz1434534-1 +%patch20 -p1 -b .bz1434534-2 +%patch21 -p1 -b .bz1445001-1 %build %if %{with runautogen} @@ -519,6 +555,67 @@ fi %endif %changelog +* Wed Apr 26 2017 Jan Friesse 2.4.0-9 +- Resolves: rhbz#1445001 + +- Main: Call mlockall after fork (rhbz#1445001) +- merge upstream commit 238e2e62d8b960e7c10bfa0a8281d78ec99f3a26 (rhbz#1445001) +- Disable aarch64 build (bz#1422598) + +* Wed Mar 22 2017 Jan Friesse 2.4.0-8 +- Resolves: rhbz#1434528 +- Resolves: rhbz#1434529 +- Resolves: rhbz#1434534 + +- cfg: Prevents use of uninitialized buffer (rhbz#1434528) +- merge upstream commit 52e6ae57ea06d0bef61c5c9250881bef1372ead2 (rhbz#1434528) +- man: Fix typos in man page (rhbz#1434529) +- merge upstream commit b642904ea9640bd7a1573a8c0d2c5bcb43a10dfc (rhbz#1434529) +- Fix typo: Destorying -> Destroying (rhbz#1434529) +- merge upstream commit 117d9e4eb77ef9941fdeaf17ddfd892514da8143 (rhbz#1434529) +- init: Add doc URIs to the systemd service files (rhbz#1434529) +- merge upstream commit 21a728785027483786e41c19f6aff57a95b80aa5 (rhbz#1434529) +- man: Modify man-page according to command usage (rhbz#1434529) +- merge upstream commit 79898e8cb1715e79b7467b91661b7341e2664550 (rhbz#1434529) +- Totempg: remove duplicate memcpy in mcast_msg func (rhbz#1434528) +- merge upstream commit 4a8e9d80409590cb42732ae3105b5ae71fda52c1 (rhbz#1434528) +- upstart: Add softdog module loading example (rhbz#1434529) +- merge upstream commit 75474d69bebea6c9c4ef2252476ce738cf92f0f4 (rhbz#1434529) +- Remove deprecated doxygen flags (rhbz#1434529) +- merge upstream commit b252013e42007ea7284ae54d035a30ca40f20fc0 (rhbz#1434529) +- Remove redundant header file inclusion (rhbz#1434528) +- merge upstream commit d6c7ade277a4a23d84c56d7fde6b60b377a1023b (rhbz#1434528) +- Qdevice: fix spell errors in qdevice (rhbz#1434529) +- merge upstream commit d9caa09c45d4560c89a1ad873087c0476cabab46 (rhbz#1434529) +- doc: document watchdog_device parameter (rhbz#1434529) +- merge upstream commit a5f97ae1b99063383d8f45168125b34232b91faf (rhbz#1434529) +- Logsys: Change logsys syslog_priority priority (rhbz#1434534) +- merge upstream commit 609cc0cc100aa1070d97b405273373682da0e270 (rhbz#1434534) +- logconfig: Do not overwrite logger_subsys priority (rhbz#1434534) +- merge upstream commit c866a2f8603b44e89eb21a6cf7d88134af2e8b66 (rhbz#1434534) + +* Tue Mar 21 2017 Jan Friesse 2.4.0-7 +- Related: rhbz#1371880 + +- Fix build on RHEL7.3 latest (rhbz#1371880) +- merge upstream commit 19e48a6eee20d5f34f79a3b8d4e1c694169c1d7b (rhbz#1371880) +- Enable aarch64 build (bz#1422598) + +* Tue Mar 21 2017 Jan Friesse 2.4.0-6 +- Resolves: rhbz#1371880 + +- libvotequorum: Bump version (rhbz#1371880) +- merge upstream commit 96f91f23a6a413535cc2f0e8492e2300373fed40 (rhbz#1371880) +- votequorum: Don't update expected_votes display if value is too high (rhbz#1371880) +- merge upstream commit 596433066805af029be1292a37a35ce31307f0bf (rhbz#1371880) +- votequorum: simplify reconfigure message handling (rhbz#1371880) +- merge upstream commit 4a385f2e94c7168dbd92168c54a80ee97a3c2140 (rhbz#1371880) + +* Thu Jan 19 2017 Jan Friesse 2.4.0-5 +- Resolves: rhbz#1289661 + +- Enable ppc64le build + * Wed Aug 31 2016 Jan Friesse 2.4.0-4 - Resolves: rhbz#1367813