Skip to content

Commit

Permalink
GEODE-2752: FixedPRSinglehopDUnitTest.test_FPAmetadataFetch fails on …
Browse files Browse the repository at this point in the history
…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.
  • Loading branch information
bschuchardt committed Apr 25, 2017
1 parent b7b02e0 commit 23658cb
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,16 @@

import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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;
Expand Down Expand Up @@ -250,18 +253,19 @@ public void test_MetadataContents() {
totalBucketOnServer += server4.invoke(getBucketCount);

verifyMetadata(totalBucketOnServer, 2);
updateIntoSinglePR();
updateIntoSinglePR(true /* assert no refresh */);
}

/**
* This test will check to see if all the partitionAttributes are sent to the client. In case one
* 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);
Expand Down Expand Up @@ -331,23 +335,31 @@ public void test_FPAmetadataFetch() {
&& (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();
Expand Down Expand Up @@ -717,44 +729,69 @@ public static void getDataFromSinglePR() {
}
}

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());
}

}

Expand Down Expand Up @@ -817,9 +854,9 @@ public static void printMetadata() {
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());
}
}
Expand Down Expand Up @@ -860,10 +897,10 @@ public String description() {
}
}

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();
// }

}
Original file line number Diff line number Diff line change
Expand Up @@ -1868,15 +1868,6 @@ public static void putIntoSinglePR() {
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();

Expand Down Expand Up @@ -1918,26 +1909,19 @@ public static void verifyEmptyStaticData() {
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());
}
}
Expand Down

0 comments on commit 23658cb

Please sign in to comment.