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/08/21 22:22:38 UTC

[geode] branch feature/GEODE-7072 created (now b1c1b44)

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

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


      at b1c1b44  GEODE-7072 CI Failure: WANRollingUpgradeEventProcessingMixedSiteOneCurrentSiteTwo

This branch includes the following new commits:

     new b1c1b44  GEODE-7072 CI Failure: WANRollingUpgradeEventProcessingMixedSiteOneCurrentSiteTwo

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[geode] 01/01: GEODE-7072 CI Failure: WANRollingUpgradeEventProcessingMixedSiteOneCurrentSiteTwo

Posted by bs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit b1c1b444d5e499dae96a2da31dac7ee32f1e182c
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Wed Aug 21 15:18:05 2019 -0700

    GEODE-7072 CI Failure: WANRollingUpgradeEventProcessingMixedSiteOneCurrentSiteTwo
    
    The DataSerializableFixedID class FinalCheckPassedMessage (with ID -158)
    wasn't added until version 1.4.  Sending this message to a member of the
    cluster running v1.3 will result in a deserialization error on that
    member.  The error is benign but it does expose rolling-upgrade tests to
    failure if suspect-string processing sees the deserialization error in
    unit test output.
---
 .../gms/fd/GMSHealthMonitorJUnitTest.java          | 27 ++++++++++++++++++++++
 .../membership/gms/fd/GMSHealthMonitor.java        |  2 +-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
index 59d2c0e..7936a4b 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
@@ -604,6 +604,33 @@ public class GMSHealthMonitorJUnitTest {
   }
 
   @Test
+  public void testExonerationMessageIsNotSentToVersion_1_3() {
+    // versions older than 1.4 don't know about the FinalCheckPassedMessage class
+    useGMSHealthMonitorTestClass = true;
+
+    try {
+      GMSMembershipView v = installAView();
+
+      setFailureDetectionPorts(v);
+
+      GMSMember memberToCheck = gmsHealthMonitor.getNextNeighbor();
+
+      gmsHealthMonitor.setNextNeighbor(v, memberToCheck);
+      assertNotEquals(memberToCheck, gmsHealthMonitor.getNextNeighbor());
+
+      mockMembers.get(0).setVersion(Version.GEODE_1_3_0);
+      boolean retVal = gmsHealthMonitor.inlineCheckIfAvailable(mockMembers.get(0), v, true,
+          memberToCheck, "Not responding");
+
+      assertTrue("CheckIfAvailable should have return true", retVal);
+      verify(messenger, never()).send(isA(FinalCheckPassedMessage.class));
+
+    } finally {
+      useGMSHealthMonitorTestClass = false;
+    }
+  }
+
+  @Test
   public void testFinalCheckPassedMessageCanBeSerializedAndDeserialized()
       throws IOException, ClassNotFoundException {
     HeapDataOutputStream heapDataOutputStream = new HeapDataOutputStream(500, Version.CURRENT);
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
index 61695c2..b169f9e 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
@@ -1387,7 +1387,7 @@ public class GMSHealthMonitor implements HealthMonitor {
 
       if (!failed) {
         if (!isStopping && !initiator.equals(localAddress)
-            && initiator.getVersionOrdinal() >= Version.GEODE_1_3_0.ordinal()) {
+            && initiator.getVersionOrdinal() >= Version.GEODE_1_4_0.ordinal()) {
           // let the sender know that it's okay to monitor this member again
           FinalCheckPassedMessage message = new FinalCheckPassedMessage(initiator, mbr);
           services.getMessenger().send(message);