Hello community,

here is the log from the commit of package corosync for openSUSE:Factory 
checked in at 2014-01-07 16:15:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/corosync (Old)
 and      /work/SRC/openSUSE:Factory/.corosync.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "corosync"

Changes:
--------
--- /work/SRC/openSUSE:Factory/corosync/corosync.changes        2013-12-05 
06:51:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.corosync.new/corosync.changes   2014-01-07 
16:15:31.000000000 +0100
@@ -1,0 +2,14 @@
+Thu Dec 12 06:35:17 UTC 2013 - [email protected]
+
+- Update to corosync 2.3.2 
+- cfgtool: return error on reload failure
+- man pages: Note that votequorum's allow_downscale is unsupported
+- logsys: Make logging of totem work again
+- totemsrp: Show English message when memb_state_gather_enter is called
+- totemiba: Check if configured MTU is allowed by HW
+- totemiba: Fix parameters position for poll_add
+- totemiba: Del channel fd from poll before destroy
+- totemiba: Properly allocate RDMA buffers
+- Upsteam version cs: 7014f10123a634cf026491edc9a09d6044106116
+
+-------------------------------------------------------------------

Old:
----
  corosync-2.3.1.tar.gz

New:
----
  corosync-2.3.2.tar.gz

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

Other differences:
------------------
++++++ corosync.spec ++++++
--- /var/tmp/diff_new_pack.8BjKbf/_old  2014-01-07 16:15:31.000000000 +0100
+++ /var/tmp/diff_new_pack.8BjKbf/_new  2014-01-07 16:15:32.000000000 +0100
@@ -44,7 +44,7 @@
 Summary:        The Corosync Cluster Engine and Application Programming 
Interfaces
 License:        BSD-3-Clause
 Group:          Productivity/Clustering/HA
-Version:        2.3.1
+Version:        2.3.2
 Release:        0
 Url:            http://www.corosync.org
 Source0:        %{name}-%{version}.tar.gz

++++++ corosync-2.3.1.tar.gz -> corosync-2.3.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/corosync-2.3.1/exec/logsys.c 
new/corosync-2.3.2/exec/logsys.c
--- old/corosync-2.3.1/exec/logsys.c    2013-09-12 17:10:35.000000000 +0200
+++ new/corosync-2.3.2/exec/logsys.c    2013-11-26 15:39:34.000000000 +0100
@@ -301,39 +301,20 @@
            (strlen(mainsystem) >= LOGSYS_MAX_SUBSYS_NAMELEN)) {
                return -1;
        }
+
        /*
         * Setup libqb as a subsys
         */
-       i = _logsys_subsys_create ("QB", "array.c");
+       i = _logsys_subsys_create ("QB", 
"array.c,log.c,log_syslog.c,log_blackbox.c,log_format.c,"
+               
"log_file.c,log_dcs.c,log_thread.c,ipc_shm.c,ipcs.c,ipc_us.c,loop.c,"
+               
"loop_poll_epoll.c,loop_job.c,loop_poll_poll.c,loop_poll_kqueue.c,"
+               
"loop_timerlist.c,loop_poll.c,ringbuffer.c,ringbuffer_helper.c,trie.c,"
+               
"map.c,skiplist.c,rpl_sem.c,hdb.c,unix.c,hashtable.c,strlcpy.c,ipc_socket.c,"
+               "strchrnul.c,ipc_setup.c,strlcat.c");
        if (i < 0) {
                return -1;
        }
 
-       _logsys_subsys_filename_add (i, "log.c");
-       _logsys_subsys_filename_add (i, "log_syslog.c");
-       _logsys_subsys_filename_add (i, "log_blackbox.c");
-       _logsys_subsys_filename_add (i, "log_format.c");
-       _logsys_subsys_filename_add (i, "log_file.c");
-       _logsys_subsys_filename_add (i, "log_dcs.c");
-       _logsys_subsys_filename_add (i, "log_thread.c");
-       _logsys_subsys_filename_add (i, "ipc_shm.c");
-       _logsys_subsys_filename_add (i, "ipcs.c");
-       _logsys_subsys_filename_add (i, "ipc_us.c");
-       _logsys_subsys_filename_add (i, "loop.c");
-       _logsys_subsys_filename_add (i, "loop_poll_epoll.c");
-       _logsys_subsys_filename_add (i, "loop_job.c");
-       _logsys_subsys_filename_add (i, "loop_poll_poll.c");
-       _logsys_subsys_filename_add (i, "loop_poll_kqueue.c");
-       _logsys_subsys_filename_add (i, "loop_timerlist.c");
-       _logsys_subsys_filename_add (i, "loop_poll.c");
-       _logsys_subsys_filename_add (i, "ringbuffer.c");
-       _logsys_subsys_filename_add (i, "ringbuffer_helper.c");
-       _logsys_subsys_filename_add (i, "trie.c");
-       _logsys_subsys_filename_add (i, "map.c");
-       _logsys_subsys_filename_add (i, "skiplist.c");
-       _logsys_subsys_filename_add (i, "rpl_sem.c");
-       _logsys_subsys_filename_add (i, "hdb.c");
-       _logsys_subsys_filename_add (i, "unix.c");
        /*
         * name clash
         * _logsys_subsys_filename_add (i, "util.c");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/corosync-2.3.1/exec/main.c 
new/corosync-2.3.2/exec/main.c
--- old/corosync-2.3.1/exec/main.c      2013-09-12 17:10:35.000000000 +0200
+++ new/corosync-2.3.2/exec/main.c      2013-11-26 15:39:34.000000000 +0100
@@ -1218,7 +1218,10 @@
        ip_version = totem_config.ip_version;
 
        totem_config.totem_logging_configuration = totem_logging_configuration;
-       totem_config.totem_logging_configuration.log_subsys_id = 
_logsys_subsys_create("TOTEM", "totem");
+       totem_config.totem_logging_configuration.log_subsys_id = 
_logsys_subsys_create("TOTEM", "totem,"
+                       
"totemmrp.c,totemrrp.c,totemip.c,totemconfig.c,totemcrypto.c,totemsrp.c,"
+                       
"totempg.c,totemiba.c,totemudp.c,totemudpu.c,totemnet.c");
+
        totem_config.totem_logging_configuration.log_level_security = 
LOGSYS_LEVEL_WARNING;
        totem_config.totem_logging_configuration.log_level_error = 
LOGSYS_LEVEL_ERROR;
        totem_config.totem_logging_configuration.log_level_warning = 
LOGSYS_LEVEL_WARNING;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/corosync-2.3.1/exec/totemiba.c 
new/corosync-2.3.2/exec/totemiba.c
--- old/corosync-2.3.1/exec/totemiba.c  2013-09-12 17:10:35.000000000 +0200
+++ new/corosync-2.3.2/exec/totemiba.c  2013-11-26 15:39:34.000000000 +0100
@@ -229,7 +229,7 @@
        struct ibv_recv_wr recv_wr;
        struct ibv_sge sge;
        struct ibv_mr *mr;
-       char buffer[MAX_MTU_SIZE];
+       char buffer[MAX_MTU_SIZE + sizeof (struct ibv_grh)];
 };
 
 struct send_buf {
@@ -272,7 +272,7 @@
        }
        send_buf->mr = ibv_reg_mr (instance->mcast_pd,
                send_buf->buffer,
-               2048, IBV_ACCESS_LOCAL_WRITE);
+               MAX_MTU_SIZE, IBV_ACCESS_LOCAL_WRITE);
        if (send_buf->mr == NULL) {
                log_printf (LOGSYS_LEVEL_ERROR, "couldn't register memory 
range");
                free (send_buf);
@@ -309,7 +309,7 @@
        }
        send_buf->mr = ibv_reg_mr (instance->send_token_pd,
                send_buf->buffer,
-               2048, IBV_ACCESS_LOCAL_WRITE);
+               MAX_MTU_SIZE, IBV_ACCESS_LOCAL_WRITE);
        if (send_buf->mr == NULL) {
                log_printf (LOGSYS_LEVEL_ERROR, "couldn't register memory 
range");
                free (send_buf);
@@ -356,7 +356,7 @@
        }
 
        recv_buf->mr = ibv_reg_mr (instance->recv_token_pd, &recv_buf->buffer,
-               2048,
+               MAX_MTU_SIZE + sizeof (struct ibv_grh),
                IBV_ACCESS_LOCAL_WRITE);
 
        recv_buf->recv_wr.next = NULL;
@@ -364,7 +364,7 @@
        recv_buf->recv_wr.num_sge = 1;
        recv_buf->recv_wr.wr_id = (uintptr_t)recv_buf;
 
-       recv_buf->sge.length = 2048;
+       recv_buf->sge.length = MAX_MTU_SIZE + sizeof (struct ibv_grh);
        recv_buf->sge.lkey = recv_buf->mr->lkey;
        recv_buf->sge.addr = (uintptr_t)recv_buf->buffer;
 
@@ -423,7 +423,7 @@
        }
 
        mr = ibv_reg_mr (instance->mcast_pd, &recv_buf->buffer,
-               2048,
+               MAX_MTU_SIZE + sizeof (struct ibv_grh),
                IBV_ACCESS_LOCAL_WRITE);
 
        recv_buf->recv_wr.next = NULL;
@@ -431,7 +431,7 @@
        recv_buf->recv_wr.num_sge = 1;
        recv_buf->recv_wr.wr_id = (uintptr_t)recv_buf;
 
-       recv_buf->sge.length = 2048;
+       recv_buf->sge.length = MAX_MTU_SIZE + sizeof (struct ibv_grh);
        recv_buf->sge.lkey = mr->lkey;
        recv_buf->sge.addr = (uintptr_t)recv_buf->buffer;
 
@@ -468,10 +468,11 @@
        recv_buf = wrid2void(wr_id);
        addr = &recv_buf->buffer[sizeof (struct ibv_grh)];
 
+       bytes -= sizeof (struct ibv_grh);
        instance->totemiba_deliver_fn (instance->rrp_context, addr, bytes);
 }
 
-static int mcast_cq_send_event_fn (int events,  int suck,  void *context)
+static int mcast_cq_send_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct ibv_wc wc[32];
@@ -494,7 +495,7 @@
        return (0);
 }
 
-static int mcast_cq_recv_event_fn (int events,  int suck,  void *context)
+static int mcast_cq_recv_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct ibv_wc wc[64];
@@ -518,7 +519,7 @@
        return (0);
 }
 
-static int mcast_rdma_event_fn (int events,  int suck,  void *context)
+static int mcast_rdma_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct rdma_cm_event *event;
@@ -591,7 +592,7 @@
        return (0);
 }
 
-static int recv_token_cq_recv_event_fn (int events,  int suck,  void *context)
+static int recv_token_cq_recv_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct ibv_wc wc[32];
@@ -621,6 +622,14 @@
                return (0);
        }
 
+       qb_loop_poll_del (
+               instance->totemiba_poll_handle,
+               instance->recv_token_recv_completion_channel->fd);
+
+       qb_loop_poll_del (
+               instance->totemiba_poll_handle,
+               instance->recv_token_send_completion_channel->fd);
+
        rdma_destroy_qp (instance->recv_token_cma_id);
 
        recv_token_recv_buf_post_destroy (instance);
@@ -637,14 +646,6 @@
 
        rdma_destroy_id (instance->recv_token_cma_id);
 
-       qb_loop_poll_del (
-               instance->totemiba_poll_handle,
-               instance->recv_token_recv_completion_channel->fd);
-
-       qb_loop_poll_del (
-               instance->totemiba_poll_handle,
-               instance->recv_token_send_completion_channel->fd);
-
        return (0);
 }
 
@@ -743,7 +744,7 @@
        return (res);
 };
 
-static int recv_token_rdma_event_fn (int events,  int suck,  void *context)
+static int recv_token_rdma_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct rdma_cm_event *event;
@@ -775,7 +776,7 @@
        return (0);
 }
 
-static int send_token_cq_send_event_fn (int events,  int suck,  void *context)
+static int send_token_cq_send_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct ibv_wc wc[32];
@@ -798,7 +799,7 @@
        return (0);
 }
 
-static int send_token_cq_recv_event_fn (int events,  int suck,  void *context)
+static int send_token_cq_recv_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct ibv_wc wc[32];
@@ -821,7 +822,7 @@
        return (0);
 }
 
-static int send_token_rdma_event_fn (int events,  int suck,  void *context)
+static int send_token_rdma_event_fn (int fd, int events, void *context)
 {
        struct totemiba_instance *instance = (struct totemiba_instance 
*)context;
        struct rdma_cm_event *event;
@@ -1051,6 +1052,7 @@
 static int recv_token_bind (struct totemiba_instance *instance)
 {
        int res;
+       struct ibv_port_attr port_attr;
 
        instance->listen_recv_token_channel = rdma_create_event_channel();
        if (instance->listen_recv_token_channel == NULL) {
@@ -1072,6 +1074,20 @@
                return (-1);
        }
 
+       /*
+        * Determine active_mtu of port and compare it with the configured one 
(160 is aproximation of all totem
+        * structures.
+        *
+        * TODO: Implement MTU discovery also for IP and handle MTU correctly 
for all structures inside totemsrp,
+        *       crypto, ...
+        */
+       res = ibv_query_port (instance->listen_recv_token_cma_id->verbs, 
instance->listen_recv_token_cma_id->port_num, &port_attr);
+       if ( (1 << (port_attr.active_mtu + 7)) < 
instance->totem_config->net_mtu + 160) {
+               log_printf (LOGSYS_LEVEL_ERROR, "requested net_mtu is %d and is 
larger than the active port mtu %d\n",\
+                               instance->totem_config->net_mtu + 160, (1 << 
(port_attr.active_mtu + 7)));
+               return (-1);
+       }
+
        /*
         * Resolve the recv_token address into a GUID
         */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/corosync-2.3.1/exec/totemsrp.c 
new/corosync-2.3.2/exec/totemsrp.c
--- old/corosync-2.3.1/exec/totemsrp.c  2013-09-12 17:10:35.000000000 +0200
+++ new/corosync-2.3.2/exec/totemsrp.c  2013-11-26 15:39:34.000000000 +0100
@@ -524,6 +524,45 @@
                int endian_conversion_needed);
 };
 
+enum gather_state_from {
+       TOTEMSRP_GSFROM_CONSENSUS_TIMEOUT = 0,
+       TOTEMSRP_GSFROM_GATHER_MISSING1 = 1,
+       TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_OPERATIONAL_STATE = 2,
+       TOTEMSRP_GSFROM_THE_CONSENSUS_TIMEOUT_EXPIRED = 3,
+       TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_COMMIT_STATE = 4,
+       TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_RECOVERY_STATE = 5,
+       TOTEMSRP_GSFROM_FAILED_TO_RECEIVE = 6,
+       TOTEMSRP_GSFROM_FOREIGN_MESSAGE_IN_OPERATIONAL_STATE = 7,
+       TOTEMSRP_GSFROM_FOREIGN_MESSAGE_IN_GATHER_STATE = 8,
+       TOTEMSRP_GSFROM_MERGE_DURING_OPERATIONAL_STATE = 9,
+       TOTEMSRP_GSFROM_MERGE_DURING_GATHER_STATE = 10,
+       TOTEMSRP_GSFROM_MERGE_DURING_JOIN = 11,
+       TOTEMSRP_GSFROM_JOIN_DURING_OPERATIONAL_STATE = 12,
+       TOTEMSRP_GSFROM_JOIN_DURING_COMMIT_STATE = 13,
+       TOTEMSRP_GSFROM_JOIN_DURING_RECOVERY = 14,
+       TOTEMSRP_GSFROM_INTERFACE_CHANGE = 15,
+       TOTEMSRP_GSFROM_MAX = TOTEMSRP_GSFROM_INTERFACE_CHANGE,
+};
+
+const char* gather_state_from_desc [] = {
+       [TOTEMSRP_GSFROM_CONSENSUS_TIMEOUT] = "consensus timeout",
+       [TOTEMSRP_GSFROM_GATHER_MISSING1] = "MISSING",
+       [TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_OPERATIONAL_STATE] = "The 
token was lost in the OPERATIONAL state.",
+       [TOTEMSRP_GSFROM_THE_CONSENSUS_TIMEOUT_EXPIRED] = "The consensus 
timeout expired.",
+       [TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_COMMIT_STATE] = "The token 
was lost in the COMMIT state.",
+       [TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_RECOVERY_STATE] = "The token 
was lost in the RECOVERY state.",
+       [TOTEMSRP_GSFROM_FAILED_TO_RECEIVE] = "failed to receive",
+       [TOTEMSRP_GSFROM_FOREIGN_MESSAGE_IN_OPERATIONAL_STATE] = "foreign 
message in operational state",
+       [TOTEMSRP_GSFROM_FOREIGN_MESSAGE_IN_GATHER_STATE] = "foreign message in 
gather state",
+       [TOTEMSRP_GSFROM_MERGE_DURING_OPERATIONAL_STATE] = "merge during 
operational state",
+       [TOTEMSRP_GSFROM_MERGE_DURING_GATHER_STATE] = "merge during gather 
state",
+       [TOTEMSRP_GSFROM_MERGE_DURING_JOIN] = "merge during join",
+       [TOTEMSRP_GSFROM_JOIN_DURING_OPERATIONAL_STATE] = "join during 
operational state",
+       [TOTEMSRP_GSFROM_JOIN_DURING_COMMIT_STATE] = "join during commit state",
+       [TOTEMSRP_GSFROM_JOIN_DURING_RECOVERY] = "join during recovery",
+       [TOTEMSRP_GSFROM_INTERFACE_CHANGE] = "interface change",
+};
+
 /*
  * forward decls
  */
@@ -586,7 +625,7 @@
 static void memb_ring_id_create_or_load (struct totemsrp_instance *, struct 
memb_ring_id *);
 
 static void token_callbacks_execute (struct totemsrp_instance *instance, enum 
totem_callback_token_type type);
-static void memb_state_gather_enter (struct totemsrp_instance *instance, int 
gather_from);
+static void memb_state_gather_enter (struct totemsrp_instance *instance, enum 
gather_state_from gather_from);
 static void messages_deliver_to_app (struct totemsrp_instance *instance, int 
skip, unsigned int end_point);
 static int orf_token_mcast (struct totemsrp_instance *instance, struct 
orf_token *oken,
        int fcc_mcasts_allowed);
@@ -617,6 +656,7 @@
 static void timer_function_merge_detect_timeout (void *data);
 static void *totemsrp_buffer_alloc (struct totemsrp_instance *instance);
 static void totemsrp_buffer_release (struct totemsrp_instance *instance, void 
*ptr);
+static const char* gsfrom_to_msg(enum gather_state_from gsfrom);
 
 void main_deliver_fn (
        void *context,
@@ -659,6 +699,16 @@
                fmt ": %s (%d)\n", ##args, _error_ptr, err_num);                
                \
        } while(0)
 
+static const char* gsfrom_to_msg(enum gather_state_from gsfrom)
+{
+       if (0 <= gsfrom && gsfrom <= TOTEMSRP_GSFROM_MAX) {
+               return gather_state_from_desc[gsfrom];
+       }
+       else {
+               return "UNKNOWN";
+       }
+}
+
 static void totemsrp_instance_initialize (struct totemsrp_instance *instance)
 {
        memset (instance, 0, sizeof (struct totemsrp_instance));
@@ -1601,7 +1651,7 @@
 
                memb_set_merge (no_consensus_list, no_consensus_list_entries,
                        instance->my_failed_list, 
&instance->my_failed_list_entries);
-               memb_state_gather_enter (instance, 0);
+               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_CONSENSUS_TIMEOUT);
        }
 }
 
@@ -1623,7 +1673,7 @@
 static void memb_recovery_state_token_loss (struct totemsrp_instance *instance)
 {
        old_ring_state_restore (instance);
-       memb_state_gather_enter (instance, 5);
+       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_RECOVERY_STATE);
        instance->stats.recovery_token_lost++;
 }
 
@@ -1638,7 +1688,7 @@
                        log_printf (instance->totemsrp_log_level_notice,
                                "A processor failed, forming new 
configuration.");
                        totemrrp_iface_check (instance->totemrrp_context);
-                       memb_state_gather_enter (instance, 2);
+                       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_OPERATIONAL_STATE);
                        instance->stats.operational_token_lost++;
                        break;
 
@@ -1646,14 +1696,14 @@
                        log_printf (instance->totemsrp_log_level_debug,
                                "The consensus timeout expired.");
                        memb_state_consensus_timeout_expired (instance);
-                       memb_state_gather_enter (instance, 3);
+                       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_THE_CONSENSUS_TIMEOUT_EXPIRED);
                        instance->stats.gather_token_lost++;
                        break;
 
                case MEMB_STATE_COMMIT:
                        log_printf (instance->totemsrp_log_level_debug,
                                "The token was lost in the COMMIT state.");
-                       memb_state_gather_enter (instance, 4);
+                       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_THE_TOKEN_WAS_LOST_IN_THE_COMMIT_STATE);
                        instance->stats.commit_token_lost++;
                        break;
 
@@ -1986,7 +2036,7 @@
 
 static void memb_state_gather_enter (
        struct totemsrp_instance *instance,
-       int gather_from)
+       enum gather_state_from gather_from)
 {
        instance->orf_token_discard = 1;
 
@@ -2033,12 +2083,13 @@
        memb_consensus_set (instance, &instance->my_id);
 
        log_printf (instance->totemsrp_log_level_debug,
-               "entering GATHER state from %d.", gather_from);
+                   "entering GATHER state from %d(%s).",
+                   gather_from, gsfrom_to_msg(gather_from));
 
        instance->memb_state = MEMB_STATE_GATHER;
        instance->stats.gather_entered++;
 
-       if (gather_from == 3) {
+       if (TOTEMSRP_GSFROM_THE_CONSENSUS_TIMEOUT_EXPIRED == 3) {
                /*
                 * State 3 means gather, so we are continuously gathering.
                 */
@@ -3719,7 +3770,7 @@
                                instance->my_failed_list,
                                &instance->my_failed_list_entries);
 
-                       memb_state_gather_enter (instance, 6);
+                       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_FAILED_TO_RECEIVE);
                } else {
                        instance->my_token_seq = token->token_seq;
                        token->token_seq += 1;
@@ -3974,7 +4025,7 @@
                        memb_set_merge (
                                &mcast_header.system_from, 1,
                                instance->my_proc_list, 
&instance->my_proc_list_entries);
-                       memb_state_gather_enter (instance, 7);
+                       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_FOREIGN_MESSAGE_IN_OPERATIONAL_STATE);
                        break;
 
                case MEMB_STATE_GATHER:
@@ -3986,7 +4037,7 @@
 
                                memb_set_merge (&mcast_header.system_from, 1,
                                        instance->my_proc_list, 
&instance->my_proc_list_entries);
-                               memb_state_gather_enter (instance, 8);
+                               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_FOREIGN_MESSAGE_IN_GATHER_STATE);
                                return (0);
                        }
                        break;
@@ -4078,7 +4129,7 @@
        case MEMB_STATE_OPERATIONAL:
                memb_set_merge (&memb_merge_detect.system_from, 1,
                        instance->my_proc_list, 
&instance->my_proc_list_entries);
-               memb_state_gather_enter (instance, 9);
+               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_MERGE_DURING_OPERATIONAL_STATE);
                break;
 
        case MEMB_STATE_GATHER:
@@ -4090,7 +4141,7 @@
 
                        memb_set_merge (&memb_merge_detect.system_from, 1,
                                instance->my_proc_list, 
&instance->my_proc_list_entries);
-                       memb_state_gather_enter (instance, 10);
+                       memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_MERGE_DURING_GATHER_STATE);
                        return (0);
                }
                break;
@@ -4217,7 +4268,7 @@
                                }
                        }
                }
-               memb_state_gather_enter (instance, 11);
+               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_MERGE_DURING_JOIN);
                gather_entered = 1;
        }
 
@@ -4225,7 +4276,7 @@
        if (gather_entered == 0 &&
                instance->memb_state == MEMB_STATE_OPERATIONAL) {
 
-               memb_state_gather_enter (instance, 12);
+               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_JOIN_DURING_OPERATIONAL_STATE);
        }
 }
 
@@ -4395,7 +4446,7 @@
                                memb_join->ring_seq >= 
instance->my_ring_id.seq) {
 
                                memb_join_process (instance, memb_join);
-                               memb_state_gather_enter (instance, 13);
+                               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_JOIN_DURING_COMMIT_STATE);
                        }
                        break;
 
@@ -4409,7 +4460,7 @@
 
                                memb_join_process (instance, memb_join);
                                memb_recovery_state_token_loss (instance);
-                               memb_state_gather_enter (instance, 14);
+                               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_JOIN_DURING_RECOVERY);
                        }
                        break;
        }
@@ -4598,7 +4649,7 @@
        }
 
        if (instance->iface_changes >= instance->totem_config->interface_count) 
{
-               memb_state_gather_enter (instance, 15);
+               memb_state_gather_enter (instance, 
TOTEMSRP_GSFROM_INTERFACE_CHANGE);
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/corosync-2.3.1/man/votequorum.5 
new/corosync-2.3.2/man/votequorum.5
--- old/corosync-2.3.1/man/votequorum.5 2013-09-12 17:10:35.000000000 +0200
+++ new/corosync-2.3.2/man/votequorum.5 2013-11-26 15:39:34.000000000 +0100
@@ -275,6 +275,8 @@
 .PP
 Enables allow downscale (AD) feature (default: 0).
 .PP
+THIS FEATURE IS INCOMPLETE AND CURRENTLY UNSUPPORTED.
+.PP
 The general behaviour of votequorum is to never decrease expected votes or 
quorum.
 .PP
 When AD is enabled, both expected votes and quorum are recalculated when
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/corosync-2.3.1/tools/corosync-cfgtool.c 
new/corosync-2.3.2/tools/corosync-cfgtool.c
--- old/corosync-2.3.1/tools/corosync-cfgtool.c 2013-09-12 17:10:35.000000000 
+0200
+++ new/corosync-2.3.2/tools/corosync-cfgtool.c 2013-11-26 15:39:34.000000000 
+0100
@@ -137,27 +137,33 @@
        (void)corosync_cfg_finalize (handle);
 }
 
-static void reload_config_do (void)
+static int reload_config_do (void)
 {
        cs_error_t result;
        corosync_cfg_handle_t handle;
+       int rc;
+
+       rc = 0;
 
        printf ("Reloading corosync.conf...\n");
        result = corosync_cfg_initialize (&handle, NULL);
        if (result != CS_OK) {
-               printf ("Could not initialize corosync configuration API error 
%d\n", result);
+               printf ("Could not initialize corosync configuration API error 
%s\n", cs_strerror(result));
                exit (1);
        }
 
        result = corosync_cfg_reload_config (handle);
        if (result != CS_OK) {
-               printf ("Could not reload configuration %d\n", result);
+               printf ("Could not reload configuration. Error %s\n", 
cs_strerror(result));
+               rc = (int)result;
        }
        else {
                printf ("Done\n");
        }
 
        (void)corosync_cfg_finalize (handle);
+
+       return (rc);
 }
 
 static void shutdown_do(void)
@@ -278,7 +284,7 @@
                        rc = ringstatusget_do (interface_name);
                        break;
                case 'R':
-                       reload_config_do ();
+                       rc = reload_config_do ();
                        break;
                case 'r':
                        ringreenable_do ();

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to