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 2019/02/28 17:41:19 UTC

[geode] 01/01: GEODE-6468 [CI Failure] ClusterCommunicationsDUnitTest fails on createEntryAndVerifyUpdate

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

bschuchardt pushed a commit to branch feature/GEODE-6468
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 861d14970b277bbd96b283dd655e3969519b6a67
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Thu Feb 28 09:39:04 2019 -0800

    GEODE-6468 [CI Failure] ClusterCommunicationsDUnitTest fails on createEntryAndVerifyUpdate
    
    Modified Connection.java to not modify the app-data input buffer in the
    handshake thread after notifying the handshake waiter.
---
 .../java/org/apache/geode/ClusterCommunicationsDUnitTest.java  | 10 +++++-----
 .../main/java/org/apache/geode/internal/tcp/Connection.java    | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/ClusterCommunicationsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/ClusterCommunicationsDUnitTest.java
index c970f77..d549fae 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/ClusterCommunicationsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/ClusterCommunicationsDUnitTest.java
@@ -70,6 +70,7 @@ import org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLe
 import org.apache.geode.internal.DSFIDFactory;
 import org.apache.geode.internal.cache.DirectReplyMessage;
 import org.apache.geode.test.dunit.Host;
+import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.Invoke;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.dunit.rules.DistributedRule;
@@ -126,7 +127,7 @@ public class ClusterCommunicationsDUnitTest implements java.io.Serializable {
   @Rule
   public final SerializableTestName testName = new SerializableTestName();
 
-  final String regionName = "clusterTestRegion";
+  private final String regionName = "clusterTestRegion";
 
   public ClusterCommunicationsDUnitTest(RunConfiguration runConfiguration) {
     this.useSSL = runConfiguration.useSSL;
@@ -145,6 +146,7 @@ public class ClusterCommunicationsDUnitTest implements java.io.Serializable {
 
   @Test
   public void createEntryAndVerifyUpdate() {
+    IgnoredException.addIgnoredException("Remote host closed connection during handshake");
     int locatorPort = createLocator(VM.getVM(0));
     for (int i = 1; i <= NUM_SERVERS; i++) {
       createCacheAndRegion(VM.getVM(i), locatorPort);
@@ -186,7 +188,7 @@ public class ClusterCommunicationsDUnitTest implements java.io.Serializable {
       VM.getVM(1).invoke("receive a large direct-reply message", () -> {
         SerialAckedMessageWithBigReply messageWithBigReply = new SerialAckedMessageWithBigReply();
         await().until(() -> {
-          messageWithBigReply.send(Collections.<DistributedMember>singleton(vm2ID));
+          messageWithBigReply.send(Collections.singleton(vm2ID));
           return true;
         });
       });
@@ -228,9 +230,7 @@ public class ClusterCommunicationsDUnitTest implements java.io.Serializable {
     createCacheAndRegion(server2VM, locatorPort);
 
     // roll server1 to the current version
-    server1VM.invoke("stop server1", () -> {
-      cache.close();
-    });
+    server1VM.invoke("stop server1", () -> cache.close());
     server1VM = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION, 1);
     createCacheAndRegion(server1VM, locatorPort);
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java b/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
index e659496..2ba313e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
@@ -756,6 +756,11 @@ public class Connection implements Runnable {
   }
 
   private void notifyHandshakeWaiter(boolean success) {
+    if (getConduit().useSSL() && ioFilter != null) {
+      // clear out any remaining handshake bytes
+      ByteBuffer buffer = ioFilter.getUnwrappedBuffer(inputBuffer);
+      buffer.position(0).limit(0);
+    }
     synchronized (this.handshakeSync) {
       if (success) {
         this.handshakeRead = true;
@@ -1588,11 +1593,6 @@ public class Connection implements Runnable {
         }
         asyncClose(false);
         this.owner.removeAndCloseThreadOwnedSockets();
-      } else {
-        if (getConduit().useSSL()) {
-          ByteBuffer buffer = ioFilter.getUnwrappedBuffer(inputBuffer);
-          buffer.position(0).limit(0);
-        }
       }
       releaseInputBuffer();