cluster: STABLE32 - If we see a JOIN message from ourselves, move ourselves to the end of the membership list.

Ryan McCabe rmccabe at fedoraproject.org
Tue May 1 13:43:44 UTC 2012


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=b0512e7c50c4c9618f751c88fd48c2a573511ace
Commit:        b0512e7c50c4c9618f751c88fd48c2a573511ace
Parent:        c2d306b73a5194f7689f0250bbf2ef2c7e66baa8
Author:        Ryan McCabe <rmccabe at redhat.com>
AuthorDate:    Tue Apr 24 12:56:24 2012 -0400
Committer:     Ryan McCabe <rmccabe at redhat.com>
CommitterDate: Tue Apr 24 12:56:24 2012 -0400

If we see a JOIN message from ourselves, move ourselves to the end of the membership list.

Signed-off-by: Ryan McCabe <rmccabe at redhat.com>
---
 rgmanager/src/daemons/cpglockd.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/rgmanager/src/daemons/cpglockd.c b/rgmanager/src/daemons/cpglockd.c
index 7d4882d..2e35f7f 100644
--- a/rgmanager/src/daemons/cpglockd.c
+++ b/rgmanager/src/daemons/cpglockd.c
@@ -1094,8 +1094,16 @@ process_join(struct cpg_lock_msg *m, uint32_t nodeid, uint32_t pid)
 
 	list_for(&group_members, n, x) {
 		if (n->nodeid == nodeid) {
-			logt_print(LOG_DEBUG, "IGNORING JOIN from existing member %d.%d (%d.%d)\n",
-				nodeid, pid, nodeid, n->pid);
+			if (n->pid == pid) {
+				logt_print(LOG_DEBUG, "Saw JOIN from self (%d.%d)\n",
+					nodeid, pid);
+				list_remove(&group_members, n);
+				list_append(&group_members, n);
+			} else {
+				logt_print(LOG_DEBUG,
+					"IGNORING JOIN from existing member %d.%d (%d.%d)\n",
+					nodeid, pid, nodeid, n->pid);
+			}
 			return 0;
 		}
 	}


More information about the cluster-commits mailing list