This is an automated email from the ASF dual-hosted git repository. zhouxj pushed a commit to branch feature/GEODE-9522 in repository https://gitbox.apache.org/repos/asf/geode.git
commit e75dc7d47bea27c01bb021edfe768678f7d0e256 Author: zhouxh <[email protected]> AuthorDate: Wed Sep 1 08:40:00 2021 -0700 GEODE-9522: When a server is force disconnected, it should set shutdown cause for dm to prevent clients recreating server connection. Co-authored-by: Barry Oglesby <[email protected]> Co-authored-by: Anil <[email protected]> --- .../geode/distributed/internal/ClusterDistributionManager.java | 5 +++++ .../distributed/internal/membership/api/MembershipListener.java | 1 + .../geode/distributed/internal/membership/gms/GMSMembership.java | 2 ++ 3 files changed, 8 insertions(+) diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java index 9e47a40..2cae200 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java @@ -2412,6 +2412,11 @@ public class ClusterDistributionManager implements DistributionManager { dm.getCache().saveCacheXmlForReconnect(); } } + + @Override + public void setShutdownCause(Exception shutdownCause) { + dm.setRootCause(shutdownCause); + } } diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipListener.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipListener.java index 5f3f7c3..948b986 100755 --- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipListener.java +++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipListener.java @@ -71,4 +71,5 @@ public interface MembershipListener<ID extends MemberIdentifier> { */ void saveConfig(); + default void setShutdownCause(Exception shutdownCause) {}; } diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java index ff9a383..32915e0 100644 --- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java +++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java @@ -1790,6 +1790,8 @@ public class GMSMembership<ID extends MemberIdentifier> implements Membership<ID services.setShutdownCause(shutdownCause); services.getCancelCriterion().cancel(reason); + listener.setShutdownCause(shutdownCause); + if (!inhibitForceDisconnectLogging) { logger.fatal( String.format("Membership service failure: %s", reason),
