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 2015/09/15 20:44:57 UTC

incubator-geode git commit: GEODE-77 fixing unit test config problems and a failure in colocated membership manager testing

Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-77 fc2881710 -> 9cd82c7b9


GEODE-77 fixing unit test config problems and a failure in colocated membership manager testing


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

Branch: refs/heads/feature/GEODE-77
Commit: 9cd82c7b935da9f040b2215b6678a080eb9d5c2d
Parents: fc28817
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Tue Sep 15 11:44:42 2015 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Tue Sep 15 11:44:42 2015 -0700

----------------------------------------------------------------------
 .../internal/membership/gms/NetLocator.java     |  3 +-
 .../internal/membership/gms/Services.java       | 11 ++-
 .../membership/gms/locator/GMSLocator.java      |  6 +-
 .../gemfire/cache30/BridgeTestCase.java         |  4 +-
 .../internal/DistributionManagerDUnitTest.java  | 75 --------------------
 .../membership/MembershipJUnitTest.java         |  2 +
 .../gms/locator/GMSLocatorJUnitTest.java        |  7 +-
 7 files changed, 25 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/NetLocator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/NetLocator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/NetLocator.java
index 10339c6..92342c1 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/NetLocator.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/NetLocator.java
@@ -9,7 +9,8 @@ public interface NetLocator extends TcpHandler {
    * This must be called after booting the membership manager so
    * that the locator can use its services
    * @param mgr
+   * @return true if the membership manager was accepted
    */
-  public void setMembershipManager(MembershipManager mgr);
+  public boolean setMembershipManager(MembershipManager mgr);
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/Services.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/Services.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/Services.java
index 4cacfc6..cdbe2aa 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/Services.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/Services.java
@@ -48,6 +48,7 @@ public class Services {
   final private DMStats stats;
   final private Stopper cancelCriterion;
   private volatile boolean stopping;
+  private volatile boolean stopped;
 
   private InternalLogWriter logWriter;
   private InternalLogWriter securityLogWriter;
@@ -77,6 +78,10 @@ public class Services {
     return this.timer;
   }
   
+  public boolean isStopped() {
+    return this.stopped;
+  }
+  
 
 
   public Services(
@@ -106,8 +111,9 @@ public class Services {
     this.healthMon.init(this);
     InternalLocator l = (InternalLocator)com.gemstone.gemfire.distributed.Locator.getLocator();
     if (l != null && l.getLocatorHandler() != null) {
-      l.getLocatorHandler().setMembershipManager((MembershipManager)this.manager);
-      this.locator = (Locator)l.getLocatorHandler();
+      if (l.getLocatorHandler().setMembershipManager((MembershipManager)this.manager)) {
+        this.locator = (Locator)l.getLocatorHandler();
+      }
     }
   }
   
@@ -179,6 +185,7 @@ public class Services {
     this.messenger.stop();
     this.manager.stop();
     this.cancelCriterion.cancel("Membership services are shut down");
+    stopped = true;
   }
 
   public static void setLogWriter(InternalLogWriter writer) {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocator.java
index 7298b86..e0f0a4a 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocator.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocator.java
@@ -87,8 +87,8 @@ public class GMSLocator implements Locator, NetLocator {
   }
   
   @Override
-  public void setMembershipManager(MembershipManager mgr) {
-    if (services == null) {
+  public boolean setMembershipManager(MembershipManager mgr) {
+    if (services == null || services.isStopped()) {
       logger.info("Peer locator is connecting to local membership services");
       services = ((GMSMembershipManager)mgr).getServices();
       services.setLocator(this);
@@ -96,7 +96,9 @@ public class GMSLocator implements Locator, NetLocator {
       if (newView != null) {
         this.view = newView;
       }
+      return true;
     }
+    return false;
   }
   
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/BridgeTestCase.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/BridgeTestCase.java b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/BridgeTestCase.java
index 745629e..c9aabb7 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/BridgeTestCase.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/cache30/BridgeTestCase.java
@@ -277,7 +277,7 @@ public class BridgeTestCase extends CacheTestCase {
     WaitCriterion w = new WaitCriterion() {
 
       public String description() {
-        return "bridge never finished connecting";
+        return "bridge never finished connecting: " + system.getMemberId();
       }
 
       public boolean done() {
@@ -288,7 +288,7 @@ public class BridgeTestCase extends CacheTestCase {
       }
       
     };
-    int waitMillis = 5000;
+    int waitMillis = 10000;
     int interval = 100;
     boolean throwException = true;
     waitForCriterion(w, waitMillis, interval, throwException);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
index 5d7e9a0..574f3f1 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionManagerDUnitTest.java
@@ -235,81 +235,6 @@ public class DistributionManagerDUnitTest extends DistributedTestCase {
   }
 
   /**
-   * Test the verifyMember interface of the membership manager
-   **/ 
-  public void testVerifyMember() {
-    VM memberVM = Host.getHost(0).getVM(1);
-
-    int port1 = AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
-
-    final String locators = getIPLiteral() + "[" + port1 + "]";
-    final Properties properties = new Properties();
-    properties.put(DistributionConfig.MCAST_PORT_NAME, "0");
-    properties.put(DistributionConfig.START_LOCATOR_NAME, locators);
-    properties.put(DistributionConfig.DISABLE_AUTO_RECONNECT_NAME, "true");
-    properties.put(DistributionConfig.LOG_LEVEL_NAME, getDUnitLogLevel());
-
-    system = (InternalDistributedSystem)DistributedSystem.connect(properties);
-    MembershipManager mgr = MembershipManagerHelper.getMembershipManager(system);
-    
-    try {
-      properties.remove(DistributionConfig.START_LOCATOR_NAME);
-      properties.put(DistributionConfig.LOCATORS_NAME, locators);
-      properties.put(DistributionConfig.NAME_NAME, "John Doe");
-      DistributedMember id = (DistributedMember)memberVM.invoke(new SerializableCallable() {
-        public Object call() {
-          DistributedSystem system = DistributedSystem.connect(properties);
-          return system.getDistributedMember();
-        }
-      });
-      
-      assertTrue(id.getName().equals("John Doe"));
-      
-      getLogWriter().info("test is setting slow view casting hook");
-      // a new view won't be installed for 20 seconds
-      fail("slow view casting must be implemented for the jgroups replacement");
-//      GMS.TEST_HOOK_SLOW_VIEW_CASTING=20;
-      
-      // show we can reconnect even though the old ID for this member is still
-      // in the membership view.  Disconnecting will shut down the old DistributedSystem
-      // in memberVM and while the old ID is still in the view
-      memberVM.invoke(new SerializableRunnable("disconnect and reconnect") {
-        public void run() {
-          DistributedSystem sys = InternalDistributedSystem.getAnyInstance();
-          DistributedMember oldID = sys.getDistributedMember();
-          crashDistributedSystem(sys);
-          sys = DistributedSystem.connect(properties);
-          getLogWriter().info("initial view in new system is " + 
-            MembershipManagerHelper.getMembershipManager(sys).getView());
-          // the old ID should be in the new view
-          if (MembershipManagerHelper.getMembershipManager(sys)
-              .memberExists((InternalDistributedMember)oldID)) {
-            // the old DistributedSystem should not be reachable
-            assertFalse(MembershipManagerHelper.getMembershipManager(sys)
-                .verifyMember(oldID, "old member has disconnected for this test"));
-          }
-        }
-      });
-    }
-    finally {
-      //TODO
-//      GMS.TEST_HOOK_SLOW_VIEW_CASTING = 0;
-      
-      memberVM.invoke(new SerializableRunnable("disconnect") {
-        public void run() {
-          DistributedSystem sys = InternalDistributedSystem.getAnyInstance();
-          if (sys != null) {
-            sys.disconnect();
-          }
-        }
-      });
-      if (system != null && system.isConnected()) {
-        system.disconnect();
-      }
-    }
-  }
-
-  /**
    * vm1 stores its cache in this static variable in
    * testAckSeverAllertThreshold
    */

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/MembershipJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/MembershipJUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/MembershipJUnitTest.java
index c1a1070..d261e66 100755
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/MembershipJUnitTest.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/MembershipJUnitTest.java
@@ -169,6 +169,7 @@ public class MembershipJUnitTest extends TestCase {
         System.setProperty(GMSJoinLeave.BYPASS_DISCOVERY, "true");
         DistributedMembershipListener listener1 = mock(DistributedMembershipListener.class);
         DMStats stats1 = mock(DMStats.class);
+        System.out.println("creating 1st membership manager");
         m1 = MemberFactory.newMembershipManager(listener1, config, transport, stats1);
       } finally {
         System.getProperties().remove(GMSJoinLeave.BYPASS_DISCOVERY);
@@ -177,6 +178,7 @@ public class MembershipJUnitTest extends TestCase {
       // start the second membership manager
       DistributedMembershipListener listener2 = mock(DistributedMembershipListener.class);
       DMStats stats2 = mock(DMStats.class);
+      System.out.println("creating 2nd membership manager");
       m2 = MemberFactory.newMembershipManager(listener2, config, transport, stats2);
       
       assert m2.getView().size() == 2 : "view = " + m2.getView();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/9cd82c7b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocatorJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocatorJUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocatorJUnitTest.java
index 7e98866..f33dbe0 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocatorJUnitTest.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/locator/GMSLocatorJUnitTest.java
@@ -92,7 +92,12 @@ public class GMSLocatorJUnitTest {
   public void testRecoverFromFileWithWrongOrdinal() throws Exception {
     // add 1 to ordinal to make it wrong
     populateStateFile(tempStateFile, GMSLocator.LOCATOR_FILE_STAMP, Version.CURRENT_ORDINAL + 1, 1);
-    assertFalse(locator.recoverFromFile(tempStateFile));
+    try {
+      locator.recoverFromFile(tempStateFile);
+      fail("expected an InternalGemFireException to be thrown");
+    } catch (InternalGemFireException e) {
+      // success
+    }
   }
 
   @Test