Hello community,

here is the log from the commit of package corosync for openSUSE:Factory 
checked in at 2019-08-24 18:41:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/corosync (Old)
 and      /work/SRC/openSUSE:Factory/.corosync.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "corosync"

Sat Aug 24 18:41:33 2019 rev:61 rq:724897 version:2.4.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/corosync/corosync.changes        2019-08-15 
15:42:20.899210042 +0200
+++ /work/SRC/openSUSE:Factory/.corosync.new.7948/corosync.changes      
2019-08-24 18:41:34.653785206 +0200
@@ -2,2 +2 @@
-
-Fri Aug  2 09:39:35 UTC 2019 - Yuan Ren <[email protected]>
+Fri Aug 16 09:50:28 UTC 2019 - Yuan Ren <[email protected]>
@@ -9,23 +8,24 @@
-    Add:    0001-disable-build-html-docs.patch
-    Add:    bsc#1083561-upgrade-from-1-x-y.patch
-    Add:    0002-Fix-compile-warnings-with-GCC-7.2.1.patch
-    Remove: disable-build-html-docs.patch
-    Remove: 0001-coroapi-Use-size_t-for-private_data_size.patch
-    Remove: 0002-fix-ifdown-udp.patch
-    Remove: 0003-fix-tmpfiles-create.patch
-    Remove: 0004-mark-corosync-as-a-static-service.patch
-    Remove: 0005-do-not-convert-empty-uid-gid-to-0.patch
-    Remove: 0006-Fix-compile-warnings-with-GCC-7.2.1.patch
-    Remove: 0007-add-config-for-corosync-qnetd.patch
-    Remove: 0008-bsc#1083561-upgrade-from-1-x-y.patch
-    Remove: 0009-bsc#1088619-add-version.patch
-    Remove: 0010-qdevice-net-instance.c-optarg-should-be-str.patch
-    Remove: 0011-NSS_NoDB_Init-the-parameter-is-reserved-must-be-NULL.patch
-    Remove: 0012-cpg-Inform-clients-about-left-nodes-during-pause.patch
-    Remove: bnc#872651-stop-cluster.patch
-    Remove: bnc#882449-corosync-conf-example.patch
-    Remove: bsc#1001164-corosync.conf-example.patch
-    Remove: bsc#1141536-corosync-qdevice-Nss-new-database-files.patch
-    Remove: corosync-2.3.4-fix-bashisms.patch
-    Remove: corosync-init-lockfile-path-error.patch
-    Remove: corosync-start-stop-level.patch
+   
+   Added:
+       corosync-2.4.5.tar.gz
+       bug-1001164_corosync.conf-example.patch
+       corosync-init-lockfile-path-error.patch
+   Deleted:
+       corosync-2.4.4.tar.gz
+       0003-fix-tmpfiles-create.patch
+       0004-mark-corosync-as-a-static-service.patch
+       0005-do-not-convert-empty-uid-gid-to-0.patch
+       0007-add-config-for-corosync-qnetd.patch
+       0009-bsc#1088619-add-version.patch
+       0010-qdevice-net-instance.c-optarg-should-be-str.patch
+       0011-NSS_NoDB_Init-the-parameter-is-reserved-must-be-NULL.patch
+       0012-cpg-inform-clients-about-left-nodes-during-pause.patch
+       bnc#872651-stop-cluster.patch
+       disable-build-html-docs.patch
+   Renamed:
+       0001-coroapi-Use-size_t-for-private_data_size.patch -> 
upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch 
+       0006-Fix-compile-warnings-with-GCC-7.2.1.patch -> 
Fix-compile-warnings-with-GCC-7.2.1.patch
+       0008-bsc#1083561-upgrade-from-1-x-y.patch -> 
bug-1083561_upgrade-from-1-x-y.patch
+       bnc#882449-corosync-conf-example.patch -> 
bug-882449_corosync-conf-example.patch
+       0002-fix-ifdown-udp.patch -> bug-1032634_fix-ifdown-udp.patch
+       bsc#1001164-corosync.conf-example.patch -> 
bug-1001164_corosync.conf-example.patch

Old:
----
  0001-disable-build-html-docs.patch
  0002-Fix-compile-warnings-with-GCC-7.2.1.patch
  bsc#1083561-upgrade-from-1-x-y.patch

New:
----
  Fix-compile-warnings-with-GCC-7.2.1.patch
  bug-1001164_corosync.conf-example.patch
  bug-1032634_fix-ifdown-udp.patch
  bug-1083561_upgrade-from-1-x-y.patch
  bug-882449_corosync-conf-example.patch
  corosync-2.3.4-fix-bashisms.patch
  corosync-init-lockfile-path-error.patch
  corosync-start-stop-level.patch
  upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ corosync.spec ++++++
--- /var/tmp/diff_new_pack.Mkr5nQ/_old  2019-08-24 18:41:35.437785131 +0200
+++ /var/tmp/diff_new_pack.Mkr5nQ/_new  2019-08-24 18:41:35.441785130 +0200
@@ -55,9 +55,15 @@
 Url:            http://corosync.github.io/corosync/
 Source0:        %{name}-%{version}.tar.gz
 Source2:        baselibs.conf
-Patch1:         bsc#1083561-upgrade-from-1-x-y.patch
-Patch2:         0001-disable-build-html-docs.patch
-Patch3:         0002-Fix-compile-warnings-with-GCC-7.2.1.patch
+Patch1:         
upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch
+Patch2:                Fix-compile-warnings-with-GCC-7.2.1.patch
+Patch3:                bug-1083561_upgrade-from-1-x-y.patch
+Patch4:                bug-882449_corosync-conf-example.patch
+Patch5:                bug-1032634_fix-ifdown-udp.patch
+Patch6:                bug-1001164_corosync.conf-example.patch
+Patch7:                corosync-2.3.4-fix-bashisms.patch
+Patch8:                corosync-init-lockfile-path-error.patch
+Patch9:                corosync-start-stop-level.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # openais is indeed gone and should be uninstalled. Yes, we do not
@@ -81,7 +87,7 @@
 
 # Build bits
 
-BuildRequires:  groff
+BuildRequires: groff-full
 BuildRequires:  libqb-devel
 BuildRequires:  mozilla-nss-devel
 BuildRequires:  zlib-devel
@@ -126,6 +132,12 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
 
 %build
 %if %{with runautogen}

++++++ Fix-compile-warnings-with-GCC-7.2.1.patch ++++++
//cpg_test_agent: Fix snprintf compiler warnings
---
 cts/agents/cpg_test_agent.c |  8 ++++----
 exec/coroparse.c            | 18 +++---------------
 lib/sam.c                   | 36 ++++++++++++++++++++++++++++--------
 tools/corosync-quorumtool.c |  2 +-
 4 files changed, 36 insertions(+), 28 deletions(-)

diff --git a/cts/agents/cpg_test_agent.c b/cts/agents/cpg_test_agent.c
index 0837c69c..2224141c 100644
--- a/cts/agents/cpg_test_agent.c
+++ b/cts/agents/cpg_test_agent.c
@@ -211,8 +211,8 @@ static void config_change_callback (
                if (record_config_events_g > 0) {
                        log_pt = malloc (sizeof(log_entry_t));
                        list_init (&log_pt->list);
-                       snprintf (log_pt->log, LOG_STR_SIZE, "%s,%u,%u,left",
-                               groupName->value, 
left_list[i].nodeid,left_list[i].pid);
+                       assert(snprintf (log_pt->log, LOG_STR_SIZE, 
"%s,%u,%u,left",
+                               groupName->value, 
left_list[i].nodeid,left_list[i].pid) < LOG_STR_SIZE);
                        list_add_tail(&log_pt->list, &config_chg_log_head);
                        qb_log (LOG_INFO, "cpg event %s", log_pt->log);
                }
@@ -221,8 +221,8 @@ static void config_change_callback (
                if (record_config_events_g > 0) {
                        log_pt = malloc (sizeof(log_entry_t));
                        list_init (&log_pt->list);
-                       snprintf (log_pt->log, LOG_STR_SIZE, "%s,%u,%u,join",
-                               groupName->value, 
joined_list[i].nodeid,joined_list[i].pid);
+                       assert(snprintf (log_pt->log, LOG_STR_SIZE, 
"%s,%u,%u,join",
+                               groupName->value, 
joined_list[i].nodeid,joined_list[i].pid) < LOG_STR_SIZE);
                        list_add_tail (&log_pt->list, &config_chg_log_head);
                        qb_log (LOG_INFO, "cpg event %s", log_pt->log);
                }
-- 
2.13.6

++++++ bug-1001164_corosync.conf-example.patch ++++++
diff -Naur corosync-2.4.5/conf/corosync.conf.example 
corosync-2.4.5-new/conf/corosync.conf.example
--- corosync-2.4.5/conf/corosync.conf.example   2019-08-16 17:30:52.306726801 
+0800
+++ corosync-2.4.5-new/conf/corosync.conf.example       2019-08-16 
17:33:25.687567471 +0800
@@ -9,6 +9,19 @@
        crypto_cipher: none
        crypto_hash: none
 
+       # How long before declaring a token lost (ms)
+       token:          5000
+       
+       # How many token retransmits before forming a new configuration
+       token_retransmits_before_loss_const: 10
+
+       # How long to wait for join messages in the membership protocol (ms)
+       join:           60
+
+       # Number of messages that may be sent by one processor on
+       # receipt of the token
+       max_messages:   20      
+
        # Limit generated nodeids to 31-bits (positive signed integers)
        # you would set it to 'yes', the new option 'new' means wiping 
        # off the highest bit in network order to avoid possible nodeid
++++++ bug-1032634_fix-ifdown-udp.patch ++++++
>From ec2dfbec877fee166b31493e2dba41a850380608 Mon Sep 17 00:00:00 2001
From: Bin Liu <[email protected]>
Date: Tue, 17 Apr 2018 18:04:52 +0800
Subject: [PATCH] totemudp: Add local loop support for unicast msgs

---
 exec/totemudp.c | 218 ++++++++++++++++++++++++++++++++------------------------
 1 file changed, 126 insertions(+), 92 deletions(-)

diff --git a/exec/totemudp.c b/exec/totemudp.c
index 4b644ae..ea18897 100644
--- a/exec/totemudp.c
+++ b/exec/totemudp.c
@@ -205,8 +205,6 @@ static int totemudp_build_sockets (
        struct totemudp_socket *sockets,
        struct totem_ip_address *bound_to);
 
-static struct totem_ip_address localhost;
-
 static void totemudp_instance_initialize (struct totemudp_instance *instance)
 {
        memset (instance, 0, sizeof (struct totemudp_instance));
@@ -267,6 +265,7 @@ static inline void ucast_sendmsg (
        struct sockaddr_storage sockaddr;
        struct iovec iovec;
        int addrlen;
+       int send_sock;
 
        if (msg_len + crypto_get_current_sec_header_size(instance->crypto_inst) 
> sizeof(buf_out)) {
                log_printf(LOGSYS_LEVEL_CRIT, "UDP message for ucast is too 
big. Ignoring message");
@@ -317,11 +316,19 @@ static inline void ucast_sendmsg (
 #endif
 
 
+       if (instance->netif_bind_state == BIND_STATE_REGULAR) {
+               send_sock = instance->totemudp_sockets.mcast_send;
+       } else {
+               send_sock = instance->totemudp_sockets.local_mcast_loop[1];
+               msg_ucast.msg_name = NULL;
+               msg_ucast.msg_namelen = 0;
+       }
+        
        /*
         * Transmit unicast message
         * An error here is recovered by totemsrp
         */
-       res = sendmsg (instance->totemudp_sockets.mcast_send, &msg_ucast,
+       res = sendmsg (send_sock, &msg_ucast,
                MSG_NOSIGNAL);
        if (res < 0) {
                LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
@@ -390,18 +397,20 @@ static inline void mcast_sendmsg (
        msg_mcast.msg_accrightslen = 0;
 #endif
 
-       /*
-        * Transmit multicast message
-        * An error here is recovered by totemsrp
-        */
-       res = sendmsg (instance->totemudp_sockets.mcast_send, &msg_mcast,
-               MSG_NOSIGNAL);
-       if (res < 0) {
-               LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-                       "sendmsg(mcast) failed (non-critical)");
-               instance->stats->continuous_sendmsg_failures++;
-       } else {
-               instance->stats->continuous_sendmsg_failures = 0;
+       if (instance->netif_bind_state == BIND_STATE_REGULAR) {
+               /*
+                * Transmit multicast message
+                * An error here is recovered by totemsrp
+                */
+               res = sendmsg (instance->totemudp_sockets.mcast_send, 
&msg_mcast,
+                       MSG_NOSIGNAL);
+               if (res < 0) {
+                       LOGSYS_PERROR (errno, 
instance->totemudp_log_level_debug,
+                               "sendmsg(mcast) failed (non-critical)");
+                       instance->stats->continuous_sendmsg_failures++;
+               } else {
+                       instance->stats->continuous_sendmsg_failures = 0;
+               }
        }
 
        /*
@@ -580,7 +589,6 @@ static void timer_function_netif_check_timeout (
        struct totemudp_instance *instance = (struct totemudp_instance *)data;
        int interface_up;
        int interface_num;
-       struct totem_ip_address *bind_address;
 
        /*
         * Build sockets for every interface
@@ -617,28 +625,31 @@ static void timer_function_netif_check_timeout (
                qb_loop_poll_del (instance->totemudp_poll_handle,
                        instance->totemudp_sockets.mcast_recv);
                close (instance->totemudp_sockets.mcast_recv);
+               instance->totemudp_sockets.mcast_recv = -1;
        }
        if (instance->totemudp_sockets.mcast_send > 0) {
                close (instance->totemudp_sockets.mcast_send);
-       }
-       if (instance->totemudp_sockets.local_mcast_loop[0] > 0) {
-               qb_loop_poll_del (instance->totemudp_poll_handle,
-                       instance->totemudp_sockets.local_mcast_loop[0]);
-               close (instance->totemudp_sockets.local_mcast_loop[0]);
-               close (instance->totemudp_sockets.local_mcast_loop[1]);
+               instance->totemudp_sockets.mcast_send = -1;
        }
        if (instance->totemudp_sockets.token > 0) {
                qb_loop_poll_del (instance->totemudp_poll_handle,
                        instance->totemudp_sockets.token);
                close (instance->totemudp_sockets.token);
+               instance->totemudp_sockets.token = -1;
        }
 
        if (interface_up == 0) {
+               if (instance->netif_bind_state == BIND_STATE_UNBOUND) {
+                       log_printf (instance->totemudp_log_level_error,
+                               "One of your ip addresses are now bound to 
localhost. "
+                               "Corosync would not work correctly.");
+                       exit(COROSYNC_DONE_FATAL_ERR);
+               }
+
                /*
                 * Interface is not up
                 */
                instance->netif_bind_state = BIND_STATE_LOOPBACK;
-               bind_address = &localhost;
 
                /*
                 * Add a timer to retry building interfaces and request 
memb_gather_enter
@@ -654,34 +665,29 @@ static void timer_function_netif_check_timeout (
                 * Interface is up
                 */
                instance->netif_bind_state = BIND_STATE_REGULAR;
-               bind_address = &instance->totem_interface->bindnet;
        }
        /*
         * Create and bind the multicast and unicast sockets
         */
        (void)totemudp_build_sockets (instance,
                &instance->mcast_address,
-               bind_address,
+               &instance->totem_interface->bindnet,
                &instance->totemudp_sockets,
                &instance->totem_interface->boundto);
 
-       qb_loop_poll_add (
-               instance->totemudp_poll_handle,
-               QB_LOOP_MED,
-               instance->totemudp_sockets.mcast_recv,
-               POLLIN, instance, net_deliver_fn);
-
-       qb_loop_poll_add (
-               instance->totemudp_poll_handle,
-               QB_LOOP_MED,
-               instance->totemudp_sockets.local_mcast_loop[0],
-               POLLIN, instance, net_deliver_fn);
+       if (instance->netif_bind_state == BIND_STATE_REGULAR) {
+               qb_loop_poll_add (
+                       instance->totemudp_poll_handle,
+                       QB_LOOP_MED,
+                       instance->totemudp_sockets.mcast_recv,
+                       POLLIN, instance, net_deliver_fn);
 
-       qb_loop_poll_add (
-               instance->totemudp_poll_handle,
-               QB_LOOP_MED,
-               instance->totemudp_sockets.token,
-               POLLIN, instance, net_deliver_fn);
+               qb_loop_poll_add (
+                       instance->totemudp_poll_handle,
+                       QB_LOOP_MED,
+                       instance->totemudp_sockets.token,
+                       POLLIN, instance, net_deliver_fn);
+       }
 
        totemip_copy (&instance->my_id, &instance->totem_interface->boundto);
 
@@ -732,6 +738,66 @@ static void totemudp_traffic_control_set(struct 
totemudp_instance *instance, int
 #endif
 }
 
+static int totemudp_build_local_sockets(
+       struct totemudp_instance *instance,
+       struct totemudp_socket *sockets)
+{
+       int i;
+       unsigned int sendbuf_size;
+       unsigned int recvbuf_size;
+       unsigned int optlen = sizeof (sendbuf_size);
+       int res;
+
+       /*
+        * Create local multicast loop socket
+        */
+       if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sockets->local_mcast_loop) == 
-1) {
+               LOGSYS_PERROR (errno, instance->totemudp_log_level_warning,
+                       "socket() failed");
+               return (-1);
+       }
+
+       for (i = 0; i < 2; i++) {
+               totemip_nosigpipe (sockets->local_mcast_loop[i]);
+               res = fcntl (sockets->local_mcast_loop[i], F_SETFL, O_NONBLOCK);
+               if (res == -1) {
+                       LOGSYS_PERROR (errno, 
instance->totemudp_log_level_warning,
+                               "Could not set non-blocking operation on 
multicast socket");
+                       return (-1);
+               }
+       }
+
+       recvbuf_size = MCAST_SOCKET_BUFFER_SIZE;
+       sendbuf_size = MCAST_SOCKET_BUFFER_SIZE;
+
+       res = setsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, 
&recvbuf_size, optlen);
+       if (res == -1) {
+               LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
+                       "Unable to set SO_RCVBUF size on UDP local mcast loop 
socket");
+               return (-1);
+       }
+       res = setsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, 
&sendbuf_size, optlen);
+       if (res == -1) {
+               LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
+                       "Unable to set SO_SNDBUF size on UDP local mcast loop 
socket");
+               return (-1);
+       }
+
+       res = getsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, 
&recvbuf_size, &optlen);
+       if (res == 0) {
+               log_printf (instance->totemudp_log_level_debug,
+                       "Local receive multicast loop socket recv buffer size 
(%d bytes).", recvbuf_size);
+       }
+
+       res = getsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, 
&sendbuf_size, &optlen);
+       if (res == 0) {
+               log_printf (instance->totemudp_log_level_debug,
+                       "Local transmit multicast loop socket send buffer size 
(%d bytes).", sendbuf_size);
+       }
+
+       return (0);
+}
+
 static int totemudp_build_sockets_ip (
        struct totemudp_instance *instance,
        struct totem_ip_address *mcast_address,
@@ -755,7 +821,6 @@ static int totemudp_build_sockets_ip (
        int res;
        int flag;
        uint8_t sflag;
-       int i;
 
        /*
         * Create multicast recv socket
@@ -786,27 +851,6 @@ static int totemudp_build_sockets_ip (
        }
 
        /*
-        * Create local multicast loop socket
-        */
-       if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sockets->local_mcast_loop) == 
-1) {
-               LOGSYS_PERROR (errno, instance->totemudp_log_level_warning,
-                       "socket() failed");
-               return (-1);
-       }
-
-       for (i = 0; i < 2; i++) {
-               totemip_nosigpipe (sockets->local_mcast_loop[i]);
-               res = fcntl (sockets->local_mcast_loop[i], F_SETFL, O_NONBLOCK);
-               if (res == -1) {
-                       LOGSYS_PERROR (errno, 
instance->totemudp_log_level_warning,
-                               "Could not set non-blocking operation on 
multicast socket");
-                       return (-1);
-               }
-       }
-
-
-
-       /*
         * Setup mcast send socket
         */
        sockets->mcast_send = socket (bindnet_address->family, SOCK_DGRAM, 0);
@@ -930,18 +974,6 @@ static int totemudp_build_sockets_ip (
                        "Unable to set SO_SNDBUF size on UDP mcast socket");
                return (-1);
        }
-       res = setsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, 
&recvbuf_size, optlen);
-       if (res == -1) {
-               LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-                       "Unable to set SO_RCVBUF size on UDP local mcast loop 
socket");
-               return (-1);
-       }
-       res = setsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, 
&sendbuf_size, optlen);
-       if (res == -1) {
-               LOGSYS_PERROR (errno, instance->totemudp_log_level_debug,
-                       "Unable to set SO_SNDBUF size on UDP local mcast loop 
socket");
-               return (-1);
-       }
 
        res = getsockopt (sockets->mcast_recv, SOL_SOCKET, SO_RCVBUF, 
&recvbuf_size, &optlen);
        if (res == 0) {
@@ -955,19 +987,6 @@ static int totemudp_build_sockets_ip (
                        "Transmit multicast socket send buffer size (%d 
bytes).", sendbuf_size);
        }
 
-       res = getsockopt (sockets->local_mcast_loop[0], SOL_SOCKET, SO_RCVBUF, 
&recvbuf_size, &optlen);
-       if (res == 0) {
-               log_printf (instance->totemudp_log_level_debug,
-                       "Local receive multicast loop socket recv buffer size 
(%d bytes).", recvbuf_size);
-       }
-
-       res = getsockopt (sockets->local_mcast_loop[1], SOL_SOCKET, SO_SNDBUF, 
&sendbuf_size, &optlen);
-       if (res == 0) {
-               log_printf (instance->totemudp_log_level_debug,
-                       "Local transmit multicast loop socket send buffer size 
(%d bytes).", sendbuf_size);
-       }
-
-
        /*
         * Join group membership on socket
         */
@@ -1256,8 +1275,19 @@ int totemudp_initialize (
 
        instance->totemudp_target_set_completed = target_set_completed;
 
-       totemip_localhost (instance->mcast_address.family, &localhost);
-       localhost.nodeid = instance->totem_config->node_id;
+       /*
+        * Create static local mcast sockets
+        */
+       if (totemudp_build_local_sockets(instance, &instance->totemudp_sockets) 
== -1) {
+               free(instance);
+               return (-1);
+       }
+
+       qb_loop_poll_add (
+               instance->totemudp_poll_handle,
+               QB_LOOP_MED,
+               instance->totemudp_sockets.local_mcast_loop[0],
+               POLLIN, instance, net_deliver_fn);
 
        /*
         * RRP layer isn't ready to receive message because it hasn't
@@ -1320,10 +1350,14 @@ int totemudp_recv_flush (void *udp_context)
        for (i = 0; i < 2; i++) {
                sock = -1;
                if (i == 0) {
-                   sock = instance->totemudp_sockets.mcast_recv;
+                       if (instance->netif_bind_state == BIND_STATE_REGULAR) {
+                               sock = instance->totemudp_sockets.mcast_recv;
+                       } else {
+                               continue;
+                       }
                }
                if (i == 1) {
-                   sock = instance->totemudp_sockets.local_mcast_loop[0];
+                       sock = instance->totemudp_sockets.local_mcast_loop[0];
                }
                assert(sock != -1);
 
-- 
2.13.6

++++++ bug-1083561_upgrade-from-1-x-y.patch ++++++
--- corosync-2.4.5/init/upgrade.sh      1970-01-01 08:00:00.000000000 +0800
+++ corosync-2.4.5-new/init/upgrade.sh  2019-08-02 17:15:38.224559371 +0800
@@ -0,0 +1,18 @@
+#! /bin/bash
+CONFIG_FILE=/etc/corosync/corosync.conf
+CONFIG_FILE_OLD=/etc/corosync/corosync.conf.old
+
+if [ -f $CONFIG_FILE ]; then
+    cp $CONFIG_FILE $CONFIG_FILE_OLD
+    #lots of operations
+    sed -i "/amf\ *{/,/\ *}/d" $CONFIG_FILE && \
+           sed -i "/aisexec\ *{/,/\ *}/d" $CONFIG_FILE && \
+           sed -i "/service\ *{/,/\ *}/d" $CONFIG_FILE && \
+           #sed -i "/token:/,/max_messages:/d" $CONFIG_FILE && \
+           sed -i "s/AMF/QUORUM/g" $CONFIG_FILE
+    if [ $? -ne 0 ]; then
+        cp $CONFIG_FILE_OLD $CONFIG_FILE
+    else
+        rm $CONFIG_FILE_OLD
+    fi
+fi
++++++ bug-882449_corosync-conf-example.patch ++++++
Index: corosync-2.3.3/conf/corosync.conf.example
===================================================================
--- corosync-2.3.3.orig/conf/corosync.conf.example
+++ corosync-2.3.3/conf/corosync.conf.example
@@ -9,6 +9,12 @@ totem {
        crypto_cipher: none
        crypto_hash: none
 
+       # Limit generated nodeids to 31-bits (positive signed integers)
+       # you would set it to 'yes', the new option 'new' means wiping 
+       # off the highest bit in network order to avoid possible nodeid
+       # conflicting.
+       clear_node_high_bit: yes
+
        # interface: define at least one interface to communicate
        # over. If you define more than one interface stanza, you must
        # also set rrp_mode.
@@ -58,8 +64,8 @@ logging {
        to_stderr: no
        # Log to a log file. When set to "no", the "logfile" option
        # must not be set.
-       to_logfile: yes
-       logfile: /var/log/cluster/corosync.log
+       #to_logfile: no
+       #logfile: /var/log/cluster/corosync.log
        # Log to the system log daemon. When in doubt, set to yes.
        to_syslog: yes
        # Log debug messages (very verbose). When in doubt, leave off.
@@ -77,5 +83,5 @@ logging {
 quorum {
        # Enable and configure quorum subsystem (default: off)
        # see also corosync.conf.5 and votequorum.5
-       #provider: corosync_votequorum
+       provider: corosync_votequorum
 }
Index: corosync-2.3.3/conf/corosync.conf.example.udpu
===================================================================
--- corosync-2.3.3.orig/conf/corosync.conf.example.udpu
+++ corosync-2.3.3/conf/corosync.conf.example.udpu
@@ -5,6 +5,8 @@ totem {
        crypto_cipher: none
        crypto_hash: none
 
+       clear_node_high_bit: yes
+
        interface {
                ringnumber: 0
                bindnetaddr: 10.16.35.0
@@ -16,9 +18,9 @@ totem {
 
 logging {
        fileline: off
-       to_logfile: yes
+       #to_logfile: no
        to_syslog: yes
-       logfile: /var/log/cluster/corosync.log
+       #logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
@@ -54,5 +56,5 @@ nodelist {
 quorum {
        # Enable and configure quorum subsystem (default: off)
        # see also corosync.conf.5 and votequorum.5
-       #provider: corosync_votequorum
+       provider: corosync_votequorum
 }
++++++ corosync-2.3.4-fix-bashisms.patch ++++++
--- corosync-2.3.5.orig/cts/agents/mem_leak_test.sh     2015-07-21 
13:47:30.058803324 +0800
+++ corosync-2.3.5/cts/agents/mem_leak_test.sh  2015-07-27 10:03:53.903380662 
+0800
@@ -41,14 +41,14 @@
     find $f | sed "s|\.|_|g" | sed "s|/|.|g" | while read l
     do 
       echo $l.count u64 $COUNT >> $temp_file
-      let COUNT="$COUNT+1"
+      COUNT="$COUNT+1"
     done
 
     corosync-cmapctl -p $temp_file
     corosync-cmapctl -D usr
   done
   AFTER=$(get_mem $TYPE)
-  let DIFF="$AFTER - $BEFORE"
+  DIFF="$AFTER - $BEFORE"
   rm -f $temp_file
   #echo $f diff $TYPE $DIFF
   echo $DIFF
@@ -76,11 +76,11 @@
   find /usr/bin | sed "s|\.|_|g" | sed "s|/|.|g" | while read l
   do 
     corosync-cmapctl -s $l u32 $COUNT
-    let COUNT="$COUNT+1"
+    COUNT="$COUNT+1"
   done
   corosync-cmapctl -D usr
   AFTER=$(get_mem $TYPE)
-  let DIFF="$AFTER - $BEFORE"
+  DIFF="$AFTER - $BEFORE"
   echo $DIFF
 
   exit 0
++++++ corosync-init-lockfile-path-error.patch ++++++
diff -Naur corosync-2.4.5/init/corosync.in corosync-2.4.5-new/init/corosync.in
--- corosync-2.4.5/init/corosync.in     2019-08-16 18:38:12.029553632 +0800
+++ corosync-2.4.5-new/init/corosync.in 2019-08-16 18:39:59.138161517 +0800
@@ -30,6 +30,7 @@
 success()
 {
        echo -ne "[  OK  ]\r"
+       rtrn=0
 }
 
 failure()
@@ -150,6 +151,7 @@
        # they also assume that init scripts will create
        # required subdirectories for proper operations
        mkdir -p @LOCALSTATEDIR@/run
+       mkdir -p @LOCALSTATEDIR@/lock/subsys
 
        if status -p "$prog_pid_file" "$prog" > /dev/null 2>&1; then
                success
++++++ corosync-start-stop-level.patch ++++++
>From b827e7f33fee652a79713d302aa9be56b456fa7d Mon Sep 17 00:00:00 2001
From: Bin Liu <[email protected]>
Date: Wed, 19 Oct 2016 15:59:17 +0800
Subject: [PATCH] modify default run level for corosync daemons

---
 init/corosync-qdevice.in | 4 ++--
 init/corosync-qnetd.in   | 4 ++--
 init/corosync.in         | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/init/corosync-qdevice.in b/init/corosync-qdevice.in
index 913e033..4949c4e 100755
--- a/init/corosync-qdevice.in
+++ b/init/corosync-qdevice.in
@@ -13,8 +13,8 @@
 # Provides:            corosync-qdevice
 # Required-Start:      $corosync
 # Required-Stop:       $corosync
-# Default-Start:
-# Default-Stop:
+# Default-Start: 3
+# Default-Stop:  1
 # Short-Description:   Starts and stops Corosync Qdevice daemon.
 # Description:         Starts and stops Corosync Qdevice daemon.
 ### END INIT INFO
diff --git a/init/corosync-qnetd.in b/init/corosync-qnetd.in
index 15d30ea..ed73ee0 100755
--- a/init/corosync-qnetd.in
+++ b/init/corosync-qnetd.in
@@ -13,8 +13,8 @@
 # Provides:            corosync-qnetd
 # Required-Start:      $network $syslog
 # Required-Stop:       $network $syslog
-# Default-Start:
-# Default-Stop:
+# Default-Start: 3
+# Default-Stop:  1
 # Short-Description:   Starts and stops Corosync Qdevice Network daemon.
 # Description:         Starts and stops Corosync Qdevice Network daemon.
 ### END INIT INFO
diff --git a/init/corosync.in b/init/corosync.in
index c93f971..366b5d6 100755
--- a/init/corosync.in
+++ b/init/corosync.in
@@ -14,8 +14,8 @@
 # Provides:            corosync
 # Required-Start:      $network $syslog
 # Required-Stop:       $network $syslog
-# Default-Start:
-# Default-Stop:
+# Default-Start: 3
+# Default-Stop:  1
 # Short-Description:   Starts and stops Corosync Cluster Engine.
 # Description:         Starts and stops Corosync Cluster Engine.
 ### END INIT INFO
-- 
2.6.6

++++++ upstream-afd97d7884940_coroapi-Use-size_t-for-private_data_size.patch 
++++++
diff -Naur corosync-2.4.5/exec/ipc_glue.c corosync-2.4.5-new/exec/ipc_glue.c
--- corosync-2.4.5/exec/ipc_glue.c      2019-07-30 20:26:27.000000000 +0800
+++ corosync-2.4.5-new/exec/ipc_glue.c  2019-08-13 13:54:38.187443967 +0800
@@ -272,7 +272,7 @@
        struct cs_ipcs_conn_context *context;
        char proc_name[32];
        struct qb_ipcs_connection_stats stats;
-       int32_t size = sizeof(struct cs_ipcs_conn_context);
+       size_t size = sizeof(struct cs_ipcs_conn_context);
        char key_name[ICMAP_KEYNAME_MAXLEN];
        int set_client_pid = 0;
        int set_proc_name = 0;
diff -Naur corosync-2.4.5/include/corosync/coroapi.h 
corosync-2.4.5-new/include/corosync/coroapi.h
--- corosync-2.4.5/include/corosync/coroapi.h   2019-07-30 20:26:27.000000000 
+0800
+++ corosync-2.4.5-new/include/corosync/coroapi.h       2019-08-13 
13:55:26.031711198 +0800
@@ -494,7 +494,7 @@
        unsigned short priority; /* Lower priority are loaded first, unloaded 
last.
                                  * 0 is a special case which always loaded 
_and_ unloaded last
                                  */
-       unsigned int private_data_size;
+       size_t private_data_size;
        enum cs_lib_flow_control flow_control;
        enum cs_lib_allow_inquorate allow_inquorate;
        char *(*exec_init_fn) (struct corosync_api_v1 *);

Reply via email to