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 2017/04/25 16:22:37 UTC

[1/2] geode git commit: GEODE-1228: ClientAuthzObjectModDUnitTest.testAllOpsObjectModWithFailover

Repository: geode
Updated Branches:
  refs/heads/develop b7b02e04b -> 53f5c9601


GEODE-1228: ClientAuthzObjectModDUnitTest.testAllOpsObjectModWithFailover

This test was getting periodic BindExceptions starting a cache server with
ports from AvailablePortHelper.  I've modified it to use wildcard binds
in the servers and have the clients use the DUnit locator to find the
servers.


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

Branch: refs/heads/develop
Commit: 53f5c960149150d65f776a46f92cd4f97cc27803
Parents: 23658cb
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Tue Apr 25 09:06:48 2017 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Tue Apr 25 09:09:11 2017 -0700

----------------------------------------------------------------------
 .../org/apache/geode/cache30/ClientServerTestCase.java    |  9 +++++++--
 .../geode/security/ClientAuthorizationTestCase.java       |  6 +++---
 .../java/org/apache/geode/security/SecurityTestUtils.java |  8 ++++++++
 .../geode/security/ClientAuthzObjectModDUnitTest.java     | 10 +++++-----
 4 files changed, 23 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/53f5c960/geode-core/src/test/java/org/apache/geode/cache30/ClientServerTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/ClientServerTestCase.java b/geode-core/src/test/java/org/apache/geode/cache30/ClientServerTestCase.java
index b972522..4f61880 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/ClientServerTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/ClientServerTestCase.java
@@ -188,12 +188,17 @@ public abstract class ClientServerTestCase extends JUnit4CacheTestCase {
         connectionsPerServer, serverGroup, poolName, pf, -1, -1, false, -2, -1);
   }
 
+  /**
+   * this method creates a client connection pool and configures it. If the ports array is not empty
+   * it is used to configure the client pool. Otherwise the pool is configured to use the dunit
+   * locator.
+   */
   public static Pool configureConnectionPoolWithNameAndFactory(AttributesFactory factory,
       String host, int[] ports, boolean establish, int redundancy, int connectionsPerServer,
       String serverGroup, String poolName, PoolFactory pf, int pingInterval, int idleTimeout,
       boolean threadLocalCnxs, int lifetimeTimeout, int statisticInterval) {
 
-    if (AUTO_LOAD_BALANCE) {
+    if (AUTO_LOAD_BALANCE || ports.length == 0) {
       pf.addLocator(host, DistributedTestUtils.getDUnitLocatorPort());
     } else {
       for (int z = 0; z < ports.length; z++) {
@@ -202,7 +207,7 @@ public abstract class ClientServerTestCase extends JUnit4CacheTestCase {
     }
 
     // TODO - probably should pass in minConnections rather than connecions per server
-    if (connectionsPerServer != -1) {
+    if (connectionsPerServer != -1 && ports != null) {
       pf.setMinConnections(connectionsPerServer * ports.length);
     }
     if (threadLocalCnxs) {

http://git-wip-us.apache.org/repos/asf/geode/blob/53f5c960/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java b/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
index 6e4c3be..b76c4fd 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
@@ -767,12 +767,12 @@ public abstract class ClientAuthorizationTestCase extends JUnit4DistributedTestC
         boolean setupDynamicRegionFactory = (opFlags & OpFlags.ENABLE_DRF) > 0;
 
         if (useThisVM) {
-          SecurityTestUtils.createCacheClientWithDynamicRegion(authInit, clientProps, javaProps,
-              new int[] {port1, port2}, 0, setupDynamicRegionFactory, NO_EXCEPTION);
+          SecurityTestUtils.createCacheClientWithDynamicRegion(authInit, clientProps, javaProps, 0,
+              setupDynamicRegionFactory, NO_EXCEPTION);
         } else {
           clientVM.invoke("SecurityTestUtils.createCacheClientWithDynamicRegion",
               () -> SecurityTestUtils.createCacheClientWithDynamicRegion(authInit, clientProps,
-                  javaProps, new int[] {port1, port2}, 0, setupDynamicRegionFactory, NO_EXCEPTION));
+                  javaProps, 0, setupDynamicRegionFactory, NO_EXCEPTION));
         }
       }
 

http://git-wip-us.apache.org/repos/asf/geode/blob/53f5c960/geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java b/geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java
index d420163..f6febb3 100644
--- a/geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java
+++ b/geode-core/src/test/java/org/apache/geode/security/SecurityTestUtils.java
@@ -320,6 +320,14 @@ public final class SecurityTestUtils {
         setupDynamicRegionFactory, false, expectedResult);
   }
 
+  /** create a client cache using the dunit locator to find servers */
+  protected static void createCacheClientWithDynamicRegion(final String authInitModule,
+      final Properties authProps, final Properties javaProps, final int numConnections,
+      final boolean setupDynamicRegionFactory, final int expectedResult) {
+    createCacheClient(authInitModule, authProps, javaProps, new int[0], numConnections,
+        setupDynamicRegionFactory, false, expectedResult);
+  }
+
   // 4
   protected static void createCacheClient(final String authInitModule, final Properties authProps,
       final Properties javaProps, final int[] ports, final int numConnections,

http://git-wip-us.apache.org/repos/asf/geode/blob/53f5c960/geode-cq/src/test/java/org/apache/geode/security/ClientAuthzObjectModDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/org/apache/geode/security/ClientAuthzObjectModDUnitTest.java b/geode-cq/src/test/java/org/apache/geode/security/ClientAuthzObjectModDUnitTest.java
old mode 100644
new mode 100755
index 3be6dde..dd50467
--- a/geode-cq/src/test/java/org/apache/geode/security/ClientAuthzObjectModDUnitTest.java
+++ b/geode-cq/src/test/java/org/apache/geode/security/ClientAuthzObjectModDUnitTest.java
@@ -98,7 +98,7 @@ public class ClientAuthzObjectModDUnitTest extends ClientAuthorizationTestCase {
 
     // Get ports for the servers
     int[] portsList = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-    int port1 = portsList[0];
+    int port1 = 0; // portsList[0];
     int port2 = portsList[1];
 
     // Perform all the ops on the clients
@@ -113,14 +113,14 @@ public class ClientAuthzObjectModDUnitTest extends ClientAuthorizationTestCase {
         // End of current operation block; execute all the operations on the servers with failover
         if (opBlock.size() > 0) {
           // Start the first server and execute the operation block
-          server1.invoke("createCacheServer",
-              () -> createCacheServer(getLocatorPort(), port1, serverProps, javaProps));
+          port1 = server1.invoke("createCacheServer",
+              () -> createCacheServer(getLocatorPort(), 0, serverProps, javaProps));
           server2.invoke("closeCache", () -> closeCache());
           executeOpBlock(opBlock, port1, port2, authInit, extraProps, null, tgen, rnd);
           if (!currentOp.equals(OperationWithAction.OPBLOCK_NO_FAILOVER)) {
             // Failover to the second server and run the block again
-            server2.invoke("createCacheServer",
-                () -> createCacheServer(getLocatorPort(), port2, serverProps, javaProps));
+            port2 = server2.invoke("createCacheServer",
+                () -> createCacheServer(getLocatorPort(), 0, serverProps, javaProps));
             server1.invoke("closeCache", () -> closeCache());
             executeOpBlock(opBlock, port1, port2, authInit, extraProps, null, tgen, rnd);
           }


[2/2] geode git commit: GEODE-2752: FixedPRSinglehopDUnitTest.test_FPAmetadataFetch fails on Jenkins

Posted by bs...@apache.org.
GEODE-2752: FixedPRSinglehopDUnitTest.test_FPAmetadataFetch fails on Jenkins

Modified the test to verify metadata after performing all put() operations.
I did this with Hitesh & did not put it on RB but it did go through
precheckin testing and only affects tests.


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

Branch: refs/heads/develop
Commit: 23658cbc9e549ebfe96ab61c1dbc46ae2b117f4b
Parents: b7b02e0
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Tue Apr 25 09:04:07 2017 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Tue Apr 25 09:09:11 2017 -0700

----------------------------------------------------------------------
 .../cache/FixedPRSinglehopDUnitTest.java        | 99 ++++++++++++++------
 .../PartitionedRegionSingleHopDUnitTest.java    | 22 +----
 2 files changed, 71 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/23658cbc/geode-core/src/test/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
index 87b1e6e..7e798c8 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
@@ -19,6 +19,7 @@ import static org.junit.Assert.*;
 
 import java.io.File;
 import java.io.IOException;
+import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -26,6 +27,8 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.distributed.internal.ServerLocation;
 import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -250,7 +253,7 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
     totalBucketOnServer += server4.invoke(getBucketCount);
 
     verifyMetadata(totalBucketOnServer, 2);
-    updateIntoSinglePR();
+    updateIntoSinglePR(true /* assert no refresh */);
   }
 
   /**
@@ -258,10 +261,11 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
    * partition comes late, we should fetch that when there is a network hop because of that
    * partitioned region. This test will create 3 servers with partition. Do some operations on them.
    * Validate that the metadata are fetched and then later up one more partition and do some
-   * operations on them. It should fetch new fpa.
+   * operations on them. It should fetch new fpa. Verify that the correct servers are known to the
+   * client metadata service at the end.
    */
   @Test
-  public void test_FPAmetadataFetch() {
+  public void testMetadataInClientWithFixedPartitions() throws Exception {
 
     final Host host = Host.getHost(0);
     VM server1 = host.getVM(0);
@@ -331,23 +335,31 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
               && (server4.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer) == 6));
 
       getFromPartitionedRegions();
+
       server1.invoke(FixedPRSinglehopDUnitTest::printView);
       server2.invoke(FixedPRSinglehopDUnitTest::printView);
       server4.invoke(FixedPRSinglehopDUnitTest::printView);
 
-      totalBucketOnServer = 0;
-      totalBucketOnServer +=
-          (Integer) server1.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer);
-      totalBucketOnServer +=
-          (Integer) server2.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer);
-      totalBucketOnServer +=
-          (Integer) server4.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer);
-      updateIntoSinglePR();
+      updateIntoSinglePR(false);
+
+      ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
+      ClientPartitionAdvisor advisor = cms.getClientPartitionAdvisor("/" + PR_NAME);
+      int[] expected = new int[] {port1, port1, port1, port4, port4, port4, port2, port2, port2,
+          port4, port4, port4};
+      for (int i = 0; i < expected.length; i++) {
+        ServerLocation primary = advisor.advisePrimaryServerLocation(i);
+        assertNotNull("bucket " + i + " had no primary server", primary);
+        assertEquals("bucket " + i + " was incorrect", expected[i], primary.getPort());
+      }
     } finally {
       server3.invoke(FixedPRSinglehopDUnitTest::stopLocator);
     }
   }
 
+  public int getServerPort() {
+    return GemFireCacheImpl.getInstance().getCacheServers().get(0).getPort();
+  }
+
   public static int createServer(boolean isAccessor, List<FixedPartitionAttributes> fpaList) {
 
     FixedPRSinglehopDUnitTest test = new FixedPRSinglehopDUnitTest();
@@ -717,44 +729,69 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
     }
   }
 
-  public static void updateIntoSinglePR() {
+  public static void updateIntoSinglePR(boolean assertNoMetadataRefreshes) {
     ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
     cms.satisfyRefreshMetadata_TEST_ONLY(false);
+
     region.put(q1dateJan1, "update0");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q1dateFeb1, "update00");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q1dateMar1, "update000");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q2dateApr1, "update1");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q2dateMay1, "update11");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q2dateJun1, "update111");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q3dateJuly1, "update2");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q3dateAug1, "update22");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q3dateSep1, "update2222");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q4dateOct1, "update3");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q4dateNov1, "update33");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
     region.put(q4dateDec1, "update3333");
-    assertEquals(false, cms.isRefreshMetadataTestOnly());
+    if (assertNoMetadataRefreshes) {
+      assertFalse(cms.isRefreshMetadataTestOnly());
+    }
 
   }
 
@@ -817,9 +854,9 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
   public static void printView() {
     PartitionedRegion pr = (PartitionedRegion) region;
     if (pr.cache != null) {
-      ((GemFireCacheImpl) cache).getLogger().info("Primary Bucket view of server0  "
+      ((GemFireCacheImpl) cache).getLogger().info("Primary Bucket view of server  "
           + pr.getDataStore().getLocalPrimaryBucketsListTestOnly());
-      ((GemFireCacheImpl) cache).getLogger().info("Secondary Bucket view of server0  "
+      ((GemFireCacheImpl) cache).getLogger().info("Secondary Bucket view of server  "
           + pr.getDataStore().getLocalNonPrimaryBucketsListTestOnly());
     }
   }
@@ -860,10 +897,10 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
     }
   }
 
-  public static void clearMetadata() {
-    ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
-    cms.getClientPartitionAttributesMap().clear();
-    cms.getClientPRMetadata_TEST_ONLY().clear();
-  }
+  // public static void clearMetadata() {
+  // ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
+  // cms.getClientPartitionAttributesMap().clear();
+  // cms.getClientPRMetadata_TEST_ONLY().clear();
+  // }
 
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/23658cbc/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
index ff82d4b..f53885f 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
@@ -1868,15 +1868,6 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     region.put(new Integer(3), "create3");
   }
 
-  public static void getDataFromSinglePR() {
-    for (int i = 0; i < 10; i++) {
-      region.get(new Integer(0));
-      region.get(new Integer(1));
-      region.get(new Integer(2));
-      region.get(new Integer(3));
-    }
-  }
-
   public static void updateIntoSinglePR() {
     ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
 
@@ -1918,26 +1909,19 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     assertTrue(cms.getClientPartitionAttributesMap().isEmpty());
   }
 
-  public static void verifyNonEmptyMetadata() {
-    ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
-    assertTrue(!cms.getClientPRMetadata_TEST_ONLY().isEmpty());
-    assertTrue(!cms.getClientPartitionAttributesMap().isEmpty());
-  }
-
   public static void printMetadata() {
     if (cache != null) {
       ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
-      ((GemFireCacheImpl) cache).getLogger()
-          .info("Metadata is " + cms.getClientPRMetadata_TEST_ONLY());
+      cache.getLogger().info("Metadata is " + cms.getClientPRMetadata_TEST_ONLY());
     }
   }
 
   public static void printView() {
     PartitionedRegion pr = (PartitionedRegion) region;
     if (pr.cache != null) {
-      ((GemFireCacheImpl) cache).getLogger().info("Primary Bucket view of server0  "
+      cache.getLogger().info("Primary Bucket view of server  "
           + pr.getDataStore().getLocalPrimaryBucketsListTestOnly());
-      ((GemFireCacheImpl) cache).getLogger().info("Secondary Bucket view of server0  "
+      cache.getLogger().info("Secondary Bucket view of server  "
           + pr.getDataStore().getLocalNonPrimaryBucketsListTestOnly());
     }
   }