You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by on...@apache.org on 2020/02/02 03:57:45 UTC
[geode] branch develop updated: GEODE-7755: change Pulse to not
keep locator alive (#4661)
This is an automated email from the ASF dual-hosted git repository.
onichols pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 44f4c21 GEODE-7755: change Pulse to not keep locator alive (#4661)
44f4c21 is described below
commit 44f4c2198c8ec0d7b717c3c940522288b65ab75e
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Sat Feb 1 19:57:23 2020 -0800
GEODE-7755: change Pulse to not keep locator alive (#4661)
* Cluster now makes itself a daemon if embedded.
If the JMXDataUpdater loses its connection it now tells the Cluster it is no longer connected.
* removed debug logging
---
.../java/org/apache/geode/tools/pulse/PulseConnectivityTest.java | 6 ++++++
.../java/org/apache/geode/tools/pulse/internal/data/Cluster.java | 7 +++++--
.../org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java | 2 ++
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseConnectivityTest.java b/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseConnectivityTest.java
index 63b5737..fe40776 100644
--- a/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseConnectivityTest.java
+++ b/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseConnectivityTest.java
@@ -16,6 +16,7 @@
package org.apache.geode.tools.pulse;
import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_BIND_ADDRESS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
import static org.assertj.core.api.Assertions.assertThat;
import java.net.InetAddress;
@@ -94,5 +95,10 @@ public class PulseConnectivityTest {
Cluster cluster = pulse.getRepository().getCluster("admin", null);
assertThat(cluster.isConnectedFlag()).isTrue();
assertThat(cluster.getServerCount()).isEqualTo(0);
+ assertThat(cluster.isAlive()).isTrue();
+ assertThat(cluster.isDaemon()).isTrue();
+ locator.getLocator().stop();
+ assertThat(locator.getLocator().isStopped()).isTrue();
+ await().untilAsserted(() -> assertThat(cluster.isAlive()).isFalse());
}
}
diff --git a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/Cluster.java b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/Cluster.java
index d06af15..1eaa7a5 100644
--- a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/Cluster.java
+++ b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/Cluster.java
@@ -93,7 +93,7 @@ public class Cluster extends Thread {
private long garbageCollectionCount = 0L;
private int clusterId;
private int notificationPageNumber = 1;
- private boolean connectedFlag;
+ private volatile boolean connectedFlag;
private String connectionErrorMsg = "";
private Set<String> deletedMembers = new HashSet<String>();
@@ -2253,6 +2253,9 @@ public class Cluster extends Thread {
this.updater = new JMXDataUpdater(serverName, port, this);
this.clusterHasBeenInitialized = new CountDownLatch(1);
+ if (Boolean.getBoolean(PulseConstants.SYSTEM_PROPERTY_PULSE_EMBEDDED)) {
+ this.setDaemon(true);
+ }
}
public void waitForInitialization(long timeout, TimeUnit unit) throws InterruptedException {
@@ -2265,7 +2268,7 @@ public class Cluster extends Thread {
@Override
public void run() {
try {
- while (!this.stopUpdates) {
+ while (!this.stopUpdates && isConnectedFlag()) {
try {
if (!this.updateData()) {
this.stale++;
diff --git a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java
index 4b91678..b42d376 100644
--- a/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java
+++ b/geode-pulse/src/main/java/org/apache/geode/tools/pulse/internal/data/JMXDataUpdater.java
@@ -373,6 +373,8 @@ public class JMXDataUpdater implements IClusterUpdater, NotificationListener {
logger.fatal(e1.getMessage(), e1);
}
this.conn = null;
+ cluster.setConnectedFlag(false);
+ cluster.setConnectionErrorMsg(ioe.getMessage());
}
return false;