diff options
author | Tor Brede Vekterli <vekterli@oath.com> | 2018-02-27 16:17:40 +0100 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@oath.com> | 2018-02-27 16:17:40 +0100 |
commit | 1ff5507b972589fc82e7e2694a02821cea88576a (patch) | |
tree | b8c32bbcfcbd2ac0f3e781d718dbcda6a77da720 /clustercontroller-core | |
parent | 9063ffeccfa036493390bb09741448c232151cdf (diff) |
Factor out common RPC version downgrade code
Diffstat (limited to 'clustercontroller-core')
-rw-r--r-- | clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeInfo.java | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeInfo.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeInfo.java index bcef7709155..55331e4bbed 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeInfo.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeInfo.java @@ -376,10 +376,7 @@ abstract public class NodeInfo implements Comparable<NodeInfo> { public boolean notifyNoSuchMethodError(String methodName, Timer timer) { if (methodName.equals("getnodestate3")) { if (version > 1) { - log.log(LogLevel.DEBUG, "Node " + toString() + " does not support " + methodName + " call. Setting version to 1."); - version = 1; - nextAttemptTime = 0; - adjustedVersionTime = timer.getCurrentTimeInMillis(); + downgradeToRpcVersion(1, methodName, timer); return true; } else if (timer.getCurrentTimeInMillis() - 2000 < adjustedVersionTime) { log.log(LogLevel.DEBUG, "Node " + toString() + " does not support " + methodName + " call. Version already at 1 and was recently adjusted, so ignoring it."); @@ -387,10 +384,7 @@ abstract public class NodeInfo implements Comparable<NodeInfo> { } } else if (methodName.equals(RPCCommunicator.SET_DISTRIBUTION_STATES_RPC_METHOD_NAME)) { if (version == RPCCommunicator.SET_DISTRIBUTION_STATES_RPC_VERSION) { - log.log(LogLevel.DEBUG, () -> "Node " + toString() + " does not support " + methodName + " call. Downgrading version to 2 (setsystemstate2)."); - version = RPCCommunicator.LEGACY_SET_SYSTEM_STATE2_RPC_VERSION; - nextAttemptTime = 0; - adjustedVersionTime = timer.getCurrentTimeInMillis(); + downgradeToRpcVersion(RPCCommunicator.LEGACY_SET_SYSTEM_STATE2_RPC_VERSION, methodName, timer); return true; } else if (timer.getCurrentTimeInMillis() - 2000 < adjustedVersionTime) { log.log(LogLevel.DEBUG, () -> "Node " + toString() + " does not support " + methodName + " call. Version already downgraded, so ignoring it."); @@ -398,10 +392,7 @@ abstract public class NodeInfo implements Comparable<NodeInfo> { } } else if (methodName.equals("getnodestate2") || methodName.equals(RPCCommunicator.LEGACY_SET_SYSTEM_STATE2_RPC_METHOD_NAME)) { if (version > 0) { - log.log(LogLevel.DEBUG, "Node " + toString() + " does not support " + methodName + " call. Setting version to 0."); - version = 0; - nextAttemptTime = 0; - adjustedVersionTime = timer.getCurrentTimeInMillis(); + downgradeToRpcVersion(0, methodName, timer); return true; } else if (timer.getCurrentTimeInMillis() - 2000 < adjustedVersionTime) { log.log(LogLevel.DEBUG, "Node " + toString() + " does not support " + methodName + " call. Version already at 0 and was recently adjusted, so ignoring it."); @@ -412,6 +403,14 @@ abstract public class NodeInfo implements Comparable<NodeInfo> { return false; } + private void downgradeToRpcVersion(int newVersion, String methodName, Timer timer) { + log.log(LogLevel.DEBUG, () -> String.format("Node %s does not support %s call. Downgrading to version %d.", + toString(), methodName, newVersion)); + version = newVersion; + nextAttemptTime = 0; + adjustedVersionTime = timer.getCurrentTimeInMillis(); + } + public Target getConnection() { return connection; } |