From 47019015ebbd7585256fd22775ae93da6134066f Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Tue, 18 Oct 2022 11:05:31 -0600 Subject: [PATCH 1/4] Better messages for Traffic Router exceptions --- CHANGELOG.md | 1 + .../traffic_router/core/dns/protocol/TCP.java | 23 +++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 313b5e3f8b..00488178c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ## [unreleased] ### Added +- [#7081](https://github.com/apache/trafficcontrol/issues/7081) *Traffic Router* Added better log messages for TR connection exceptions. - [#7089](https://github.com/apache/trafficcontrol/issues/7089) *Traffic Router* Added the ability to specify HTTPS certificate attributes. - [#7109](https://github.com/apache/trafficcontrol/pull/7109) *Traffic Router* Removed `dnssec.zone.diffing.enabled` and `dnssec.rrsig.cache.enabled` parameters. - [#7075](https://github.com/apache/trafficcontrol/pull/7075) *Traffic Portal* Added the `lastUpdated` field to all delivery service forms. diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java index db475d1ec6..bc89cc88a1 100644 --- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java +++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java @@ -15,13 +15,11 @@ package org.apache.traffic_control.traffic_router.core.dns.protocol; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; +import java.net.SocketTimeoutException; import java.nio.channels.Channels; import org.apache.logging.log4j.LogManager; @@ -91,6 +89,7 @@ class TCPSocketHandler implements SocketHandler { @Override @SuppressWarnings("PMD.EmptyCatchBlock") public void run() { + InetAddress client = null; if (cancel) { cleanup(); return; @@ -101,7 +100,7 @@ public void run() { DataOutputStream os = new DataOutputStream(socket.getOutputStream()) ) { socket.setSoTimeout(getReadTimeout()); - final InetAddress client = socket.getInetAddress(); + client = socket.getInetAddress(); final int length = is.readUnsignedShort(); final byte[] request = new byte[length]; @@ -112,6 +111,20 @@ public void run() { os.write(response); } catch (final WireParseException e) { // This is already recorded in the access log + } catch (final SocketTimeoutException e) { + String hostAddress = "unknown"; + if (client != null) { + hostAddress = client.getHostAddress(); + } + LOGGER.error("The socket with the Client at: " + + hostAddress + " has timed out. Error: " + e.getMessage(), e); + } catch (final EOFException e) { + String hostAddress = "unavailable"; + if (client != null) { + hostAddress = client.getHostAddress(); + } + LOGGER.error("The client at " + hostAddress + + " has closed the connection prematurely. Error: " + e.getMessage(), e); } catch (final Exception e) { LOGGER.error(e.getMessage(), e); } finally { From e65b001923651b6a5122b614122d0588cea4b807 Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Tue, 18 Oct 2022 12:04:25 -0600 Subject: [PATCH 2/4] fix imports --- .../traffic_router/core/dns/protocol/TCP.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java index bc89cc88a1..4ac79c0d7b 100644 --- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java +++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java @@ -15,7 +15,10 @@ package org.apache.traffic_control.traffic_router.core.dns.protocol; -import java.io.*; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; From ae6025c5828bc74e46ff7cbfa84b948954958c0d Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 19 Oct 2022 09:37:30 -0600 Subject: [PATCH 3/4] fix imports --- .../traffic_control/traffic_router/core/dns/protocol/TCP.java | 1 + 1 file changed, 1 insertion(+) diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java index 4ac79c0d7b..1a28adee7d 100644 --- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java +++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java @@ -17,6 +17,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; +import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; From 6178aea433a422aed2a2b8fdefe5fe66e05613b6 Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 19 Oct 2022 10:28:40 -0600 Subject: [PATCH 4/4] dont print stacktrace --- .../traffic_control/traffic_router/core/dns/protocol/TCP.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java index 1a28adee7d..0a0702960f 100644 --- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java +++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java @@ -121,14 +121,14 @@ public void run() { hostAddress = client.getHostAddress(); } LOGGER.error("The socket with the Client at: " + - hostAddress + " has timed out. Error: " + e.getMessage(), e); + hostAddress + " has timed out. Error: " + e.getMessage()); } catch (final EOFException e) { String hostAddress = "unavailable"; if (client != null) { hostAddress = client.getHostAddress(); } LOGGER.error("The client at " + hostAddress + - " has closed the connection prematurely. Error: " + e.getMessage(), e); + " has closed the connection prematurely. Error: " + e.getMessage()); } catch (final Exception e) { LOGGER.error(e.getMessage(), e); } finally {