Greetings! Came across the following stack in the log:
2020/10/20-20:20:44.926-0,JAVA,0,level=WARN,pid=11448,threadId=79,thread=webflux-selector-http-6,logger=com.example.webflux.GlobalExceptionHandler,message='[567b6e06-1142474] Request processing failed: HTTP GET "/static/auth/bundled/vendors~index.css?hash=efe52b3a171d61573126"',exception=reactor.netty.ReactorNetty$InternalNettyException: java.nio.channels.ClosedChannelException
Caused by: java.nio.channels.ClosedChannelException
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannel$AbstractUnsafe.newClosedChannelException(AbstractChannel.java:957)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:865)
at io.netty.transport@4.1.45.Final/io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:715)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:707)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:700)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:695)
at io.netty.transport@4.1.45.Final/io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.write(CombinedChannelDuplexHandler.java:521)
at io.netty.codec@4.1.45.Final/io.netty.handler.codec.MessageToMessageEncoder.writePromiseCombiner(MessageToMessageEncoder.java:137)
at io.netty.codec@4.1.45.Final/io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:119)
at io.netty.transport@4.1.45.Final/io.netty.channel.CombinedChannelDuplexHandler.write(CombinedChannelDuplexHandler.java:346)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:715)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:707)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:700)
at reactor.netty@0.9.4.RELEASE/reactor.netty.http.server.HttpTrafficHandler.write(HttpTrafficHandler.java:274)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:715)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:762)
at io.netty.transport@4.1.45.Final/io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1089)
at io.netty.common@4.1.45.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.common@4.1.45.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.transport@4.1.45.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497)
at io.netty.common@4.1.45.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.common@4.1.45.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:834)
2020/10/20-20:20:44.928-0,JAVA,0,level=ERROR,pid=11448,threadId=79,thread=webflux-selector-http-6,logger=org.springframework.web.server.adapter.HttpWebHandlerAdapter,message='[567b6e06-1142474] Error [java.lang.UnsupportedOperationException] for HTTP GET "/static/auth/bundled/vendors~index.css?hash=efe52b3a171d61573126", but ServerHttpResponse already committed (200 OK)'
Should HttpWebHandlerAdapter#isDisconnectedClientError(Throwable) treat «reactor.netty.ReactorNetty$InternalNettyException: java.nio.channels.ClosedChannelException» similarly to the other exceptions from DISCONNECTED_CLIENT_EXCEPTIONS?
Comment From: rstoyanchev
I'm not quite sure where ReactorNetty$InternalNettyException
originates from in this case. The only way I can see it being raised is via ReactorNetty.wrapException
and it only gets invoked here which is for an OutOfMemoryError
and not ClosedChannelException
. In fact the latter is wrapped as AbortedException
in the latest version.
What version of Reactor Netty are you using?
Comment From: evgenyvsmirnov
@rstoyanchev , this particular log got with Dysprosium-SR4. Yes – pretty old one. Now we are using Dysprosium-SR14.
Comment From: rstoyanchev
My point is I don't see how it can happen with the latest code which means that it may no longer be relevant. If it is then please provide a stacktrace based on the latest Dysprosium.
Comment From: evgenyvsmirnov
Ok. Provided that it could be outdated let us close the issue. If I stumble across it again I reopen it with a new stacktrace. Thanks!