You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/03/18 17:28:26 UTC

[3/8] incubator-geode git commit: GEODE-1100 Neglect view when it send by member which is not in current view.

GEODE-1100 Neglect view when it send by member which is not in current view.

there is possibility that existing member can see view from non-existing
memebr in view. Thus now we just ignore that view, if member is not exist
in current view.


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/f226f010
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/f226f010
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/f226f010

Branch: refs/heads/feature/GEODE-1050
Commit: f226f0108630e0330d993514da1342f226863f96
Parents: a8d6015
Author: Hitesh Khamesra <hk...@pivotal.io>
Authored: Fri Mar 11 17:19:46 2016 -0800
Committer: Hitesh Khamesra <hk...@pivotal.io>
Committed: Fri Mar 18 09:23:22 2016 -0700

----------------------------------------------------------------------
 .../internal/membership/gms/membership/GMSJoinLeave.java  | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f226f010/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
index 2b7893e..717a0ea 100755
--- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
+++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
@@ -831,6 +831,11 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
   private void processViewMessage(final InstallViewMessage m) {
 
     NetView view = m.getView();
+    
+    if(currentView != null && !currentView.contains(m.getSender())) {
+      logger.info("Ignoring the view {} from member {}, which is not in my current view {} ", view, m.getSender(), currentView);
+      return;
+    }
 
     if (currentView != null && view.getViewId() < currentView.getViewId()) {
       // ignore old views
@@ -1445,9 +1450,12 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
       processRemoveRequest(msg);
       if (!this.isCoordinator) {
         msg.resetRecipients();
-        msg.setRecipients(v.getPreferredCoordinators(Collections.<InternalDistributedMember>emptySet(), localAddress, 10));
+        msg.setRecipients(v.getPreferredCoordinators(Collections.<InternalDistributedMember> emptySet(), localAddress, 10));
         services.getMessenger().send(msg);
       }
+    } else {
+      RemoveMemberMessage msg = new RemoveMemberMessage(m, m, reason);
+      services.getMessenger().send(msg);
     }
   }