From 9ac32da6337b38fe34ebd9bb4e5b308587a2e755 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 29 Mar 2022 11:16:02 +0200 Subject: [PATCH] openvidu-server: infinite OPENVIDU_PRO_CLUSTER_RECONNECTION_TIMEOUT with -1 --- .../server/config/OpenviduConfig.java | 30 ++++++++++++------- .../server/kurento/kms/KmsManager.java | 11 +++---- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java index 3f90bbf1..335fab79 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java +++ b/openvidu-server/src/main/java/io/openvidu/server/config/OpenviduConfig.java @@ -39,6 +39,7 @@ import java.util.Map.Entry; import javax.annotation.PostConstruct; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.Range; import org.apache.commons.lang3.StringUtils; import org.apache.commons.validator.routines.DomainValidator; import org.apache.commons.validator.routines.InetAddressValidator; @@ -470,7 +471,11 @@ public class OpenviduConfig { } public int getReconnectionTimeout() { - return 2000000000; + return -1; + } + + public int getAppliedReconnectionTimeout() { + return Integer.MAX_VALUE; } // Properties management methods @@ -927,25 +932,28 @@ public class OpenviduConfig { } } - protected Integer asOptionalNonNegativeInteger(String property, int min, int max) { + protected Integer asOptionalIntegerBetweenRanges(String property, Range... ranges) { try { String value = getValue(property); if (value == null || value.isEmpty()) { return null; } Integer integerValue = Integer.parseInt(getValue(property)); - if (integerValue < 0) { - addError(property, "Is not a non negative integer"); + boolean belognsToRanges = false; + for (int i = 0; i < ranges.length; i++) { + if (ranges[i].contains(integerValue)) { + belognsToRanges = true; + break; + } } - if (integerValue < min) { - addError(property, "Must be >= " + min); + if (!belognsToRanges) { + addError(property, "It does not belong to the accepted ranges"); + return 0; + } else { + return integerValue; } - if (integerValue >= max) { - addError(property, "Must be < " + max); - } - return integerValue; } catch (NumberFormatException e) { - addError(property, "Is not a non negative integer"); + addError(property, "Is not an integer"); return 0; } } diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java index 4c1068df..f74e833e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java @@ -243,7 +243,8 @@ public abstract class KmsManager { if (iteration.decrementAndGet() < 0) { kms.getKurentoClientReconnectTimer().cancelTimer(); - boolean mustRetryReconnection = accumulatedTimeout < openviduConfig.getReconnectionTimeout(); + boolean mustRetryReconnection = accumulatedTimeout < openviduConfig + .getAppliedReconnectionTimeout(); boolean mustRemoveMediaNode = !mustRetryReconnection; if (!kms.hasTriggeredNodeCrashedEvent()) { @@ -266,10 +267,10 @@ public abstract class KmsManager { if (mustRetryReconnection) { - log.info( - "Retrying reconnection to Media Node {} with IP {}. {} seconds consumed of a maximum of {}", - kms.getId(), kms.getIp(), accumulatedTimeout, - openviduConfig.getReconnectionTimeout()); + log.info("Retrying reconnection to Media Node {} with IP {}. {}", kms.getId(), kms.getIp(), + openviduConfig.getReconnectionTimeout() == -1 ? "Infinite retry" + : (accumulatedTimeout + " seconds consumed of a maximum of " + + openviduConfig.getReconnectionTimeout())); disconnectionHandler(kms, accumulatedTimeout); } else {