From 5c4e8dd3d754d4e9937b20d7bf2eed99f74ab6b1 Mon Sep 17 00:00:00 2001 From: lakith Date: Wed, 17 Apr 2024 14:46:56 +0530 Subject: [PATCH] Improve passthru warn logs for max payload size exceeding --- .../synapse/transport/passthru/PassThroughConstants.java | 2 ++ .../apache/synapse/transport/passthru/SourceHandler.java | 6 +++++- .../apache/synapse/transport/passthru/TargetHandler.java | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java b/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java index 3770b963b2..1de4b94a7f 100644 --- a/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java +++ b/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java @@ -237,6 +237,7 @@ public class PassThroughConstants { public static final String HTTP_PUT = "PUT"; public static final String HTTP_OPTIONS = "OPTIONS"; public static final String HTTP_CONNECT = "CONNECT"; + public static final String HTTP_METHOD = "HTTP_METHOD"; //Constant to specify the socket timeout public static final String HTTP_SOCKET_TIMEOUT = "HTTP_SOCKET_TIMEOUT"; @@ -274,4 +275,5 @@ public class PassThroughConstants { //default header that carries the correlation ID. Header name is configurable at passthru-http.properties public static final String CORRELATION_DEFAULT_HEADER = "activityid"; public static final String TRANSPORT_LATENCY_LOGGER = "transport-latency"; + public static final String TRANSPORT_IN_URL = "TransportInURL"; } diff --git a/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java b/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java index a91d282fbb..df569f7f66 100644 --- a/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java +++ b/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceHandler.java @@ -359,7 +359,11 @@ public void inputReady(NHttpServerConnection conn, if (messageSizeSum > validMaxMessageSize) { log.warn("Payload exceeds valid payload size range, hence discontinuing chunk stream at " - + messageSizeSum + " bytes to prevent OOM."); + + messageSizeSum + " bytes to prevent OOM for" + + " URI : " + request.getUri() + + ", Method : " + request.getMethod() + + ", Correlation ID: " + request.getHeaders().get(PassThroughConstants.CORRELATION_DEFAULT_HEADER) + ); dropSourceConnection(conn); metrics.exceptionOccured(); conn.getContext().setAttribute(PassThroughConstants.SOURCE_CONNECTION_DROPPED, true); diff --git a/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetHandler.java b/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetHandler.java index b7319cce8f..e3d2e9b48d 100644 --- a/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetHandler.java +++ b/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetHandler.java @@ -678,7 +678,11 @@ public void inputReady(NHttpClientConnection conn, ContentDecoder decoder) { if (messageSizeSum > validMaxMessageSize) { log.warn("Payload exceeds valid payload size range, hence discontinuing chunk stream at " - + messageSizeSum + " bytes to prevent OOM."); + + messageSizeSum + " bytes to prevent OOM for" + + " URI : " + msgCtx.getProperty(PassThroughConstants.TRANSPORT_IN_URL) + + ", Method : " + msgCtx.getProperty(PassThroughConstants.HTTP_METHOD) + + ", Correlation ID: " + msgCtx.getProperty(CorrelationConstants.CORRELATION_ID) + ); dropTargetConnection(conn); response.getPipe().forceProducerComplete(decoder); }