Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 69735200ACA for ; Thu, 19 May 2016 21:27:15 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6846D160A05; Thu, 19 May 2016 19:27:15 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4CDB61609AE for ; Thu, 19 May 2016 21:27:14 +0200 (CEST) Received: (qmail 91901 invoked by uid 500); 19 May 2016 19:27:13 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 91892 invoked by uid 99); 19 May 2016 19:27:13 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 May 2016 19:27:13 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 1D506C006B for ; Thu, 19 May 2016 19:27:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.221 X-Spam-Level: X-Spam-Status: No, score=-3.221 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id yxl50qUjIo4h for ; Thu, 19 May 2016 19:27:10 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id 24B3560E3D for ; Thu, 19 May 2016 19:27:07 +0000 (UTC) Received: (qmail 89630 invoked by uid 99); 19 May 2016 19:27:07 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 May 2016 19:27:07 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2930CE0A3F; Thu, 19 May 2016 19:27:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: hiteshkhamesra@apache.org To: commits@geode.incubator.apache.org Date: Thu, 19 May 2016 19:27:29 -0000 Message-Id: <2d72d92f6ea74c2ba816c8c5d9ff645a@git.apache.org> In-Reply-To: <49ed061305ea40a7925d247cd91e767c@git.apache.org> References: <49ed061305ea40a7925d247cd91e767c@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [24/36] incubator-geode git commit: GEODE-1375 When using multicast a new member needs to receive the multicast message digest archived-at: Thu, 19 May 2016 19:27:15 -0000 GEODE-1375 When using multicast a new member needs to receive the multicast message digest This reinstates the sending of JoinResponseMessages so that the new member can get the jgroups multicast digest. The JoinResponseMessages are sent after installing the new membership view, so JGroupsMessenger has been changed to use MERGE_VIEW instead of SET_VIEW to install the digest since it may have already received multicast messages from some members. Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/6dd3a580 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/6dd3a580 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/6dd3a580 Branch: refs/heads/feature/GEODE-1372 Commit: 6dd3a580ffb68331c9c45b3e311d7f31c4cfca05 Parents: 96c67d4 Author: Bruce Schuchardt Authored: Wed May 11 15:26:08 2016 -0700 Committer: Bruce Schuchardt Committed: Wed May 11 15:27:41 2016 -0700 ---------------------------------------------------------------------- .../membership/gms/membership/GMSJoinLeave.java | 17 +- .../gms/messenger/JGroupsMessenger.java | 10 +- .../membership/gms/messenger/jgroups-mcast.xml | 194 +++++++++---------- .../gms/membership/GMSJoinLeaveJUnitTest.java | 2 +- 4 files changed, 118 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6dd3a580/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 88e4d49..41ec1ea 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 @@ -750,6 +750,13 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler { return newView; } + private void sendJoinResponses(NetView newView, List newMbrs) { + for (InternalDistributedMember mbr : newMbrs) { + JoinResponseMessage response = new JoinResponseMessage(mbr, newView); + services.getMessenger().send(response); + } + } + private void sendRemoveMessages(List removals, List reasons, NetView newView, Set oldIds) { Iterator reason = reasons.iterator(); for (InternalDistributedMember mbr : removals) { @@ -1128,8 +1135,10 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler { */ private void processJoinResponse(JoinResponseMessage rsp) { synchronized (joinResponse) { - joinResponse[0] = rsp; - joinResponse.notifyAll(); + if (!this.isJoined) { + joinResponse[0] = rsp; + joinResponse.notifyAll(); + } } } @@ -2258,6 +2267,10 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler { sendView(newView, joinReqs); + // we also send a join response so that information like the multicast message digest + // can be transmitted to the new members w/o including it in the view message + sendJoinResponses(newView, joinReqs); + if (markViewCreatorForShutdown && getViewCreator() != null) { shutdown = true; } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6dd3a580/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java index 4a54e84..0460964 100755 --- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/JGroupsMessenger.java @@ -140,7 +140,7 @@ public class JGroupsMessenger implements Messenger { * reduces the amount of suspect processing initiated by IOExceptions and the * amount of exceptions logged */ - private Set
addressesWithioExceptionsProcessed = Collections.synchronizedSet(new HashSet
()); + private Set
addressesWithIoExceptionsProcessed = Collections.synchronizedSet(new HashSet
()); static { // register classes that we've added to jgroups that are put on the wire @@ -376,7 +376,7 @@ public class JGroupsMessenger implements Messenger { logger.trace("installing JGroups view: {}", jgv); this.myChannel.down(new Event(Event.VIEW_CHANGE, jgv)); - addressesWithioExceptionsProcessed.clear(); + addressesWithIoExceptionsProcessed.clear(); } @@ -390,10 +390,10 @@ public class JGroupsMessenger implements Messenger { if (services.getManager().shutdownInProgress()) { // GEODE-634 - don't log IOExceptions during shutdown return; } - if (addressesWithioExceptionsProcessed.contains(dest)) { + if (addressesWithIoExceptionsProcessed.contains(dest)) { return; } - addressesWithioExceptionsProcessed.add(dest); + addressesWithIoExceptionsProcessed.add(dest); NetView v = this.view; JGAddress jgMbr = (JGAddress)dest; if (jgMbr != null && v != null) { @@ -952,7 +952,7 @@ public class JGroupsMessenger implements Messenger { if (digest != null) { logger.trace("installing JGroups message digest {}", digest); this.myChannel.getProtocolStack() - .getTopProtocol().down(new Event(Event.SET_DIGEST, digest)); + .getTopProtocol().down(new Event(Event.MERGE_DIGEST, digest)); jrsp.setMessengerData(null); } } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6dd3a580/geode-core/src/main/resources/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/jgroups-mcast.xml ---------------------------------------------------------------------- diff --git a/geode-core/src/main/resources/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/jgroups-mcast.xml b/geode-core/src/main/resources/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/jgroups-mcast.xml index c71f972..69048d9 100755 --- a/geode-core/src/main/resources/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/jgroups-mcast.xml +++ b/geode-core/src/main/resources/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/jgroups-mcast.xml @@ -1,98 +1,98 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6dd3a580/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java old mode 100644 new mode 100755 index 50bed13..1e1724d --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java @@ -1128,7 +1128,7 @@ public class GMSJoinLeaveJUnitTest { } Thread.sleep(1000); - System.out.println("Empty sleeps " + sleeps + " stoppping: " + gmsJoinLeave.isStopping() ); + System.out.println("Empty sleeps " + sleeps + " stopping: " + gmsJoinLeave.isStopping() ); } }