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