Björn Pettersson created CAMEL-21909:
----------------------------------------
Summary: 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
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)