[
https://issues.apache.org/jira/browse/CAMEL-21909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945287#comment-17945287
]
Claus Ibsen commented on CAMEL-21909:
-------------------------------------
The original exception is logged at DEBUG level prior
if (LOG.isDebugEnabled()) {
LOG.debug("Closing channel as an exception was thrown from Netty", cause);
}
> camel-netty-http: SslClosedEngineException during exception handling
> --------------------------------------------------------------------
>
> Key: CAMEL-21909
> URL: https://issues.apache.org/jira/browse/CAMEL-21909
> Project: Camel
> Issue Type: Bug
> Components: camel-netty-http
> Affects Versions: 4.8.5
> Environment: Camel 4.8.x
> Spring Boot 3.4.x
> eclipse-temurin:17-jre-alpine image
> Reporter: Björn Pettersson
> Priority: Minor
> Fix For: 4.x
>
>
> We use camel-netty-http and have recently seen a few errors on https
> connections which indicate some issue with exception handling. It may be
> applicable to the camel-netty component as well.
> From the stacktrace below it seems like there is a connection issue, which
> closes the SSLEngine and triggers ClientChannelHandler.exceptionCaught(...).
> This will call NettyHelper.close(...) which fails with
> "SslClosedEngineException: SSLEngine closed already"
> The result is that the original exception is hidden, making it harder to
> resolve what is the root cause of the connection issue.
> Unfortunately I have not found a good way to reproduce.
>
> {code:java}
> Stacktrace=io.netty.handler.ssl.SslClosedEngineException: SSLEngine closed
> already
> at io.netty.handler.ssl.SslHandler.wrap(SslHandler.java:924)
> at io.netty.handler.ssl.SslHandler.wrapAndFlush(SslHandler.java:828)
> at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:809)
> at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:2129)
> at
> io.netty.handler.ssl.SslHandler.closeOutboundAndChannel(SslHandler.java:2098)
> at io.netty.handler.ssl.SslHandler.close(SslHandler.java:760)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:761)
> at
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:733)
> at
> io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.close(CombinedChannelDuplexHandler.java:505)
> at
> io.netty.channel.ChannelOutboundHandlerAdapter.close(ChannelOutboundHandlerAdapter.java:77)
> at
> io.netty.channel.CombinedChannelDuplexHandler.close(CombinedChannelDuplexHandler.java:316)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:757)
> at
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:733)
> at
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:560)
> at
> io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:906)
> at io.netty.channel.AbstractChannel.close(AbstractChannel.java:243)
> at
> org.apache.camel.component.netty.NettyHelper.close(NettyHelper.java:123)
> at
> org.apache.camel.component.netty.handlers.ClientChannelHandler.exceptionCaught(ClientChannelHandler.java:98)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
> at
> io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424)
> at
> io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92)
> at
> io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145)
> at
> io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143)
> at
> io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
> at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1222)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
> at
> io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:856)
> at
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125)
> at
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:177)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
> at
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at java.base/java.lang.Thread.run(Unknown Source) {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)