From 5a02a787e60571683bde4cdf6806121788bb220e Mon Sep 17 00:00:00 2001 From: David Turner Date: Mon, 21 Jul 2025 08:16:16 +0100 Subject: [PATCH] Log failure in `internalSend` (#131418) An exception here should be impossible, but we don't assert that, nor do we emit a log message to prove it didn't happen in a production environment. This commit adds the missing log and assert. --- .../org/elasticsearch/transport/OutboundHandler.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java b/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java index cab15fffa3fd0..b0408ac3c60cc 100644 --- a/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java +++ b/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java @@ -433,6 +433,16 @@ private void maybeLogSlowMessage(boolean success) { } }); } catch (RuntimeException ex) { + logger.error( + Strings.format( + "unexpected exception calling sendMessage for transport message [%s] of size [%d] on [%s]", + messageDescription.get(), + messageSize, + channel + ), + ex + ); + assert Thread.currentThread().getName().startsWith("TEST-") : ex; channel.setCloseException(ex); Releasables.closeExpectNoException(() -> listener.onFailure(ex), () -> CloseableChannel.closeChannel(channel)); throw ex;