This puts multiple nodeids on each [QUORUM] Members line instead of
putting each nodeid on a separate line.  With more than a few nodes the
excessive lines become a real nuisance, and anyone up around 32 nodes
may literally be scrolling through hundreds of those lines.

Index: vsf_quorum.c
===================================================================
--- vsf_quorum.c        (revision 2562)
+++ vsf_quorum.c        (working copy)
@@ -103,7 +103,35 @@
 static size_t quorum_view_list_entries = 0;
 static int quorum_view_list[PROCESSOR_COUNT_MAX];
 struct quorum_services_api_ver1 *quorum_iface = NULL;
+static char view_buf[64];
 
+static void log_view_list(const unsigned int *view_list, size_t 
view_list_entries)
+{
+       int total = (int)view_list_entries;
+       int len, pos, ret, cnt;
+       int i = 0;
+
+       while (1) {
+               len = sizeof(view_buf);
+               pos = 0;
+               memset(view_buf, 0, len);
+               cnt = 0;
+
+               for (; i < total; i++) {
+                       ret = snprintf(view_buf + pos, len - pos, " %d", 
view_list[i]);
+                       if (ret >= len - pos)
+                               break;
+                       pos += ret;
+                       cnt++;
+               }
+               log_printf (LOGSYS_LEVEL_NOTICE, "Members[%d]:%s%s",
+                           total, view_buf, i < total ? "\\" : "");
+
+               if (i == total)
+                       break;
+       }
+}
+
 /* Internal quorum API function */
 static void quorum_api_set_quorum(const unsigned int *view_list,
                                  size_t view_list_entries,
@@ -123,9 +151,7 @@
        memcpy(&quorum_ring_id, ring_id, sizeof (quorum_ring_id));
        memcpy(quorum_view_list, view_list, sizeof(unsigned 
int)*view_list_entries);
 
-       log_printf (LOGSYS_LEVEL_NOTICE, "Members[%d]: ", 
(int)view_list_entries);
-       for (i=0; i<view_list_entries; i++)
-               log_printf (LOGSYS_LEVEL_NOTICE, "    %d ", view_list[i]);
+       log_view_list(view_list, view_list_entries);
 
        /* Tell internal listeners */
        send_internal_notification();
_______________________________________________
Openais mailing list
Openais@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to