From 93ddae8f2efabdd22091284cb45aef7c8d253d29 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 1 Dec 2022 11:20:30 +0100 Subject: Check when last warning was logged for all error types --- .../subscription/impl/JRTConfigRequester.java | 35 +++++++++------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java index 0ef99930dde..b4a2a29102b 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigRequester.java @@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import static com.yahoo.jrt.ErrorCode.CONNECTION; import static java.util.logging.Level.FINE; import static java.util.logging.Level.FINEST; import static java.util.logging.Level.SEVERE; @@ -132,7 +133,7 @@ public class JRTConfigRequester implements RequestWaiter { if (sub.isClosed()) return; // Avoid error messages etc. after closing boolean validResponse = jrtReq.validateResponse(); - log.log(FINE, () -> "Request callback " + (validResponse ? "valid" : "invalid") + ". Req: " + jrtReq + "\nSpec: " + connection); + log.log(FINE, () -> "Response " + (validResponse ? "valid" : "invalid") + ". Req: " + jrtReq + "\nSpec: " + connection); Trace trace = jrtReq.getResponseTrace(); trace.trace(TRACELEVEL, "JRTConfigRequester.doHandle()"); log.log(FINEST, () -> trace.toString()); @@ -142,34 +143,26 @@ public class JRTConfigRequester implements RequestWaiter { handleFailedRequest(jrtReq, sub, connection); } - private void logError(JRTClientConfigRequest jrtReq, Connection connection) { - switch (jrtReq.errorCode()) { - case com.yahoo.jrt.ErrorCode.CONNECTION: - log.log(FINE, () -> "Request callback failed: " + jrtReq.errorMessage() + - "\nConnection spec: " + connection); - break; - case ErrorCode.APPLICATION_NOT_LOADED: - case ErrorCode.UNKNOWN_VESPA_VERSION: - logWarning(jrtReq, connection); - break; - default: - log.log(WARNING, "Request callback failed. Req: " + jrtReq + "\nSpec: " + connection.getAddress() + - " . Req error message: " + jrtReq.errorMessage()); - break; - } - } + private void logFailingRequest(JRTClientConfigRequest jrtReq, Connection connection) { + if (closed) return; - private void logWarning(JRTClientConfigRequest jrtReq, Connection connection) { - if ( ! closed && timeForLastLogWarning.isBefore(Instant.now().minus(delayBetweenWarnings))) { - log.log(WARNING, "Request callback failed: " + ErrorCode.getName(jrtReq.errorCode()) + + if (jrtReq.errorCode() == CONNECTION) { + log.log(FINE, () -> "Request failed: " + jrtReq.errorMessage() + + "\nConnection spec: " + connection); + } else if (timeForLastLogWarning.isBefore(Instant.now().minus(delayBetweenWarnings))) { + log.log(WARNING, "Request failed: " + ErrorCode.getName(jrtReq.errorCode()) + ". Connection spec: " + connection.getAddress() + ", error message: " + jrtReq.errorMessage()); timeForLastLogWarning = Instant.now(); + } else { + log.log(FINE, () -> "Request failed: " + ErrorCode.getName(jrtReq.errorCode()) + + ". Connection spec: " + connection.getAddress() + + ", error message: " + jrtReq.errorMessage()); } } private void handleFailedRequest(JRTClientConfigRequest jrtReq, JRTConfigSubscription sub, Connection connection) { - logError(jrtReq, connection); + logFailingRequest(jrtReq, connection); connectionPool.switchConnection(connection); if (failures < 10) -- cgit v1.2.3