Author: stefanegli
Date: Wed Nov 11 09:12:14 2015
New Revision: 1713780
URL: http://svn.apache.org/viewvc?rev=1713780&view=rev
Log:
SLING-5290 : Ensure heartbeat self-check works with any timeout/interval config
Modified:
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/heartbeat/HeartbeatHandler.java
Modified:
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/heartbeat/HeartbeatHandler.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/heartbeat/HeartbeatHandler.java?rev=1713780&r1=1713779&r2=1713780&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/heartbeat/HeartbeatHandler.java
(original)
+++
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/heartbeat/HeartbeatHandler.java
Wed Nov 11 09:12:14 2015
@@ -238,7 +238,7 @@ public class HeartbeatHandler extends Ba
// so this second part is now done (additionally) in a 2nd runner here:
try {
long interval = config.getHeartbeatInterval();
- logger.info("initialize: starting periodic heartbeat job for
"+slingId+" with interval "+interval+" sec.");
+ logger.info("initialize: starting periodic
checkForLocalClusterViewChange job for "+slingId+" with interval "+interval+"
sec.");
if (interval==0) {
logger.warn("initialize: Repeat interval cannot be zero.
Defaulting to 10sec.");
interval = 10;
@@ -256,7 +256,8 @@ public class HeartbeatHandler extends Ba
// SLING-5285: add a safety-margin for SLING-5195
final long heartbeatTimeoutMillis =
config.getHeartbeatTimeoutMillis();
final long heartbeatIntervalMillis =
config.getHeartbeatInterval() * 1000;
- final long maxTimeSinceHb = heartbeatTimeoutMillis - 2
* heartbeatIntervalMillis;
+ final long maxTimeSinceHb =
Math.max(Math.min(heartbeatTimeoutMillis, 2 * heartbeatIntervalMillis),
+ heartbeatTimeoutMillis - 2 *
heartbeatIntervalMillis);
if (timeSinceHb > maxTimeSinceHb) {
logger.info("checkForLocalClusterViewChange/.run:
time since local instance last wrote a heartbeat is " + timeSinceHb + "ms"
+ " (heartbeatTimeoutMillis=" +
heartbeatTimeoutMillis + ", heartbeatIntervalMillis=" + heartbeatIntervalMillis