You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2018/04/09 22:04:49 UTC

[geode] branch develop updated: GEODE-4995 ClusterStartupRule is inefficient when shutting down the cluster

This is an automated email from the ASF dual-hosted git repository.

bschuchardt pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2e89e84  GEODE-4995 ClusterStartupRule is inefficient when shutting down the cluster
2e89e84 is described below

commit 2e89e840f040800a65721c161d3b4203acfd7ff0
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Apr 9 15:04:02 2018 -0700

    GEODE-4995 ClusterStartupRule is inefficient when shutting down the cluster
    
    modified after() to shut down non-locators before shutting down locators,
    allowing membership coordination to stay in the locator instead of
    causing cascading movement of the role.
---
 .../org/apache/geode/test/dunit/rules/ClusterStartupRule.java    | 1 +
 .../test/java/org/apache/geode/test/junit/rules/VMProvider.java  | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
index cbe1306..9224c2f 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
@@ -127,6 +127,7 @@ public class ClusterStartupRule extends ExternalResource implements Serializable
       MemberStarterRule.disconnectDSIfAny();
 
       // stop all the clientsVM before stop all the memberVM
+      occupiedVMs.values().forEach(x -> x.stopVMIfNotLocator(true));
       occupiedVMs.values().forEach(x -> x.stopVM(true));
 
       // delete any file under root dir
diff --git a/geode-core/src/test/java/org/apache/geode/test/junit/rules/VMProvider.java b/geode-core/src/test/java/org/apache/geode/test/junit/rules/VMProvider.java
index 9898305..dd7ca32 100644
--- a/geode-core/src/test/java/org/apache/geode/test/junit/rules/VMProvider.java
+++ b/geode-core/src/test/java/org/apache/geode/test/junit/rules/VMProvider.java
@@ -30,6 +30,15 @@ public abstract class VMProvider {
 
   public abstract VM getVM();
 
+  public void stopVMIfNotLocator(boolean cleanWorkingDir) {
+    getVM().invoke(() -> {
+      if (!org.apache.geode.distributed.Locator.hasLocator()) {
+        ClusterStartupRule.stopElementInsideVM();
+        MemberStarterRule.disconnectDSIfAny();
+      }
+    });
+  }
+
   public void stopVM(boolean cleanWorkingDir) {
     getVM().invoke(() -> {
       ClusterStartupRule.stopElementInsideVM();

-- 
To stop receiving notification emails like this one, please contact
bschuchardt@apache.org.