[55/57] [abbrv] geode git commit: GEODE-2497 surprise members are never timed out during startup
GEODE-2497 surprise members are never timed out during startup Merge of 8d45ca22737282abe279d3c863478f904f2e1926 and a6dfa4ca630a82fcf92942a834f8255e86d2bfcb from feature/GEODE-2497. Moved the creation of the timer to GMSMembershipManager.started() Removed write-lock in timer-creation method since it's only called from one place now Altered the way that the timer-creation method finds the InternalDistributedSystem. The old way of using getAnyInstance() was the primary source of the problem since it returns null until startup is completed. Altered the surprise-member unit test to ensure that it's using the timer and not relying on installation of a new membership view to clean things up. Altered the surprise-member unit test to run faster. It now completes in under 10 seconds. This closes #402 Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/135bd77a Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/135bd77a Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/135bd77a Branch: refs/heads/feature/GEODE-2460 Commit: 135bd77a11c10609310838bb77cf9bb57d38fee3 Parents: c6b941f Author: Bruce SchuchardtAuthored: Tue Feb 21 16:07:51 2017 -0800 Committer: Bruce Schuchardt Committed: Tue Feb 21 16:30:19 2017 -0800 -- .../gms/mgr/GMSMembershipManager.java | 190 +-- .../internal/DistributionManagerDUnitTest.java | 72 +++ 2 files changed, 122 insertions(+), 140 deletions(-) -- http://git-wip-us.apache.org/repos/asf/geode/blob/135bd77a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java -- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java index cf17025..050e201 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java @@ -128,7 +128,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Trick class to make the startup synch more visible in stack traces - * + * * @see GMSMembershipManager#startupLock */ static class EventProcessingLock { @@ -143,7 +143,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * indicates whether the event is a departure, a surprise connect (i.e., before the view message * arrived), a view, or a regular message - * + * * @see #SURPRISE_CONNECT * @see #VIEW * @see #MESSAGE @@ -181,7 +181,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a surprise connect event - * + * * @param member the member connecting */ StartupEvent(final InternalDistributedMember member) { @@ -191,7 +191,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a surprise connect event - * + * * @return true if this is a connect event */ boolean isSurpriseConnect() { @@ -200,7 +200,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a view event - * + * * @param v the new view */ StartupEvent(NetView v) { @@ -210,7 +210,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a view event - * + * * @return true if this is a view event */ boolean isGmsView() { @@ -219,7 +219,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a message event - * + * * @param d the message */ StartupEvent(DistributionMessage d) { @@ -229,7 +229,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a message event - * + * * @return true if this is a message event */ boolean isDistributionMessage() { @@ -248,14 +248,14 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * This is the latest view (ordered list of DistributedMembers) that has been installed - * + * * All accesses to this object are protected via {@link #latestViewLock} */ private NetView latestView = new NetView(); /** * This is the lock for protecting access to latestView - * + * * @see
[55/58] [abbrv] geode git commit: GEODE-2497 surprise members are never timed out during startup
GEODE-2497 surprise members are never timed out during startup Merge of 8d45ca22737282abe279d3c863478f904f2e1926 and a6dfa4ca630a82fcf92942a834f8255e86d2bfcb from feature/GEODE-2497. Moved the creation of the timer to GMSMembershipManager.started() Removed write-lock in timer-creation method since it's only called from one place now Altered the way that the timer-creation method finds the InternalDistributedSystem. The old way of using getAnyInstance() was the primary source of the problem since it returns null until startup is completed. Altered the surprise-member unit test to ensure that it's using the timer and not relying on installation of a new membership view to clean things up. Altered the surprise-member unit test to run faster. It now completes in under 10 seconds. This closes #402 Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/135bd77a Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/135bd77a Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/135bd77a Branch: refs/heads/feature/GEODE-2267 Commit: 135bd77a11c10609310838bb77cf9bb57d38fee3 Parents: c6b941f Author: Bruce SchuchardtAuthored: Tue Feb 21 16:07:51 2017 -0800 Committer: Bruce Schuchardt Committed: Tue Feb 21 16:30:19 2017 -0800 -- .../gms/mgr/GMSMembershipManager.java | 190 +-- .../internal/DistributionManagerDUnitTest.java | 72 +++ 2 files changed, 122 insertions(+), 140 deletions(-) -- http://git-wip-us.apache.org/repos/asf/geode/blob/135bd77a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java -- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java index cf17025..050e201 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java @@ -128,7 +128,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Trick class to make the startup synch more visible in stack traces - * + * * @see GMSMembershipManager#startupLock */ static class EventProcessingLock { @@ -143,7 +143,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * indicates whether the event is a departure, a surprise connect (i.e., before the view message * arrived), a view, or a regular message - * + * * @see #SURPRISE_CONNECT * @see #VIEW * @see #MESSAGE @@ -181,7 +181,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a surprise connect event - * + * * @param member the member connecting */ StartupEvent(final InternalDistributedMember member) { @@ -191,7 +191,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a surprise connect event - * + * * @return true if this is a connect event */ boolean isSurpriseConnect() { @@ -200,7 +200,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a view event - * + * * @param v the new view */ StartupEvent(NetView v) { @@ -210,7 +210,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a view event - * + * * @return true if this is a view event */ boolean isGmsView() { @@ -219,7 +219,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a message event - * + * * @param d the message */ StartupEvent(DistributionMessage d) { @@ -229,7 +229,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a message event - * + * * @return true if this is a message event */ boolean isDistributionMessage() { @@ -248,14 +248,14 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * This is the latest view (ordered list of DistributedMembers) that has been installed - * + * * All accesses to this object are protected via {@link #latestViewLock} */ private NetView latestView = new NetView(); /** * This is the lock for protecting access to latestView - * + * * @see
[1/2] geode git commit: GEODE-2497 surprise members are never timed out during startup
Repository: geode Updated Branches: refs/heads/develop c6b941fd3 -> 3474fa7ab GEODE-2497 surprise members are never timed out during startup Merge of 8d45ca22737282abe279d3c863478f904f2e1926 and a6dfa4ca630a82fcf92942a834f8255e86d2bfcb from feature/GEODE-2497. Moved the creation of the timer to GMSMembershipManager.started() Removed write-lock in timer-creation method since it's only called from one place now Altered the way that the timer-creation method finds the InternalDistributedSystem. The old way of using getAnyInstance() was the primary source of the problem since it returns null until startup is completed. Altered the surprise-member unit test to ensure that it's using the timer and not relying on installation of a new membership view to clean things up. Altered the surprise-member unit test to run faster. It now completes in under 10 seconds. This closes #402 Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/135bd77a Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/135bd77a Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/135bd77a Branch: refs/heads/develop Commit: 135bd77a11c10609310838bb77cf9bb57d38fee3 Parents: c6b941f Author: Bruce SchuchardtAuthored: Tue Feb 21 16:07:51 2017 -0800 Committer: Bruce Schuchardt Committed: Tue Feb 21 16:30:19 2017 -0800 -- .../gms/mgr/GMSMembershipManager.java | 190 +-- .../internal/DistributionManagerDUnitTest.java | 72 +++ 2 files changed, 122 insertions(+), 140 deletions(-) -- http://git-wip-us.apache.org/repos/asf/geode/blob/135bd77a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java -- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java index cf17025..050e201 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java @@ -128,7 +128,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Trick class to make the startup synch more visible in stack traces - * + * * @see GMSMembershipManager#startupLock */ static class EventProcessingLock { @@ -143,7 +143,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * indicates whether the event is a departure, a surprise connect (i.e., before the view message * arrived), a view, or a regular message - * + * * @see #SURPRISE_CONNECT * @see #VIEW * @see #MESSAGE @@ -181,7 +181,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a surprise connect event - * + * * @param member the member connecting */ StartupEvent(final InternalDistributedMember member) { @@ -191,7 +191,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a surprise connect event - * + * * @return true if this is a connect event */ boolean isSurpriseConnect() { @@ -200,7 +200,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a view event - * + * * @param v the new view */ StartupEvent(NetView v) { @@ -210,7 +210,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a view event - * + * * @return true if this is a view event */ boolean isGmsView() { @@ -219,7 +219,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Create a message event - * + * * @param d the message */ StartupEvent(DistributionMessage d) { @@ -229,7 +229,7 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * Indicate if this is a message event - * + * * @return true if this is a message event */ boolean isDistributionMessage() { @@ -248,14 +248,14 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** * This is the latest view (ordered list of DistributedMembers) that has been installed - * + * * All accesses to this object are protected via {@link #latestViewLock} */ private NetView latestView = new NetView(); /** * This is
geode git commit: GEODE-2497 surprise members are never timed out during startup
Repository: geode Updated Branches: refs/heads/feature/GEODE-2497 [created] 8d45ca227 GEODE-2497 surprise members are never timed out during startup Moved the creation of the timer to GMSMembershipManager.started() Removed write-lock in timer-creation method since it's only called from one place now Altered the way that the timer-creation method finds the InternalDistributedSystem. The old way of using getAnyInstance() was the primary source of the problem since it returns null until startup is completed. Altered the surprise-member unit test to ensure that it's using the timer and not relying on installation of a new membership view to clean things up. Altered the surprise-member unit test to run faster. It now completes in under 10 seconds. Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/8d45ca22 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/8d45ca22 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/8d45ca22 Branch: refs/heads/feature/GEODE-2497 Commit: 8d45ca22737282abe279d3c863478f904f2e1926 Parents: dbea592 Author: Bruce SchuchardtAuthored: Fri Feb 17 10:17:21 2017 -0800 Committer: Bruce Schuchardt Committed: Fri Feb 17 10:22:25 2017 -0800 -- .../gms/mgr/GMSMembershipManager.java | 75 +--- .../internal/DistributionManagerDUnitTest.java | 117 +-- 2 files changed, 89 insertions(+), 103 deletions(-) -- http://git-wip-us.apache.org/repos/asf/geode/blob/8d45ca22/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java -- diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java index cf17025..6cefe4e 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/mgr/GMSMembershipManager.java @@ -608,7 +608,6 @@ public class GMSMembershipManager implements MembershipManager, Manager { } try { listener.viewInstalled(latestView); -startCleanupTimer(); } catch (DistributedSystemDisconnectedException se) { } } finally { @@ -616,6 +615,10 @@ public class GMSMembershipManager implements MembershipManager, Manager { } } + public boolean isCleanupTimerStarted() { +return this.cleanupTimer != null; + } + /** * the timer used to perform periodic tasks * @@ -767,7 +770,9 @@ public class GMSMembershipManager implements MembershipManager, Manager { } @Override - public void started() {} + public void started() { +startCleanupTimer(); + } /** this is invoked by JoinLeave when there is a loss of quorum in the membership system */ @@ -942,12 +947,6 @@ public class GMSMembershipManager implements MembershipManager, Manager { surpriseMembers.remove(member); } else { -// Now that we're sure the member is new, add them. -// make sure the surprise-member cleanup task is running -if (this.cleanupTimer == null) { - startCleanupTimer(); -} // cleanupTimer == null - // Ensure that the member is accounted for in the view // Conjure up a new view including the new member. This is necessary // because we are about to tell the listener about a new member, so @@ -978,43 +977,33 @@ public class GMSMembershipManager implements MembershipManager, Manager { /** starts periodic task to perform cleanup chores such as expire surprise members */ private void startCleanupTimer() { -latestViewWriteLock.lock(); -try { - if (this.cleanupTimer != null) { -return; - } - DistributedSystem ds = InternalDistributedSystem.getAnyInstance(); - if (ds != null && ds.isConnected()) { -this.cleanupTimer = new SystemTimer(ds, true); -SystemTimer.SystemTimerTask st = new SystemTimer.SystemTimerTask() { - @Override - public void run2() { -latestViewWriteLock.lock(); -try { - long oldestAllowed = System.currentTimeMillis() - surpriseMemberTimeout; - for (Iterator it = surpriseMembers.entrySet().iterator(); it.hasNext();) { -Map.Entry entry = (Map.Entry) it.next(); -Long birthtime = (Long) entry.getValue(); -if (birthtime.longValue() < oldestAllowed) { - it.remove(); - InternalDistributedMember m =