Target library: Most likely org.springframework.boot:spring-boot-starter-jetty
Version: 3.2.0
Jetty Version 12.0.7
Description
We are running Java service with Spring Boot exposing Web Socket based connection. And some connections suddenly stop receiving incoming message. Every incident like that coincides with Warning log from Jetty
WARN org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy [qtp1558825448-9112] Task run failed
java.lang.IllegalStateException: already released ReferenceCounter@4efeb79f[r=0]
at org.eclipse.jetty.io.Retainable$ReferenceCounter.lambda$release$2(Retainable.java:192) ~[jetty-io-12.0.7.jar!/:12.0.7]
at java.base/java.util.concurrent.atomic.AtomicInteger.updateAndGet(AtomicInteger.java:281) ~[?:?]
at org.eclipse.jetty.io.Retainable$ReferenceCounter.release(Retainable.java:189) ~[jetty-io-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.io.AbstractRetainableByteBuffer.release(AbstractRetainableByteBuffer.java:58) ~[jetty-io-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.io.ArrayByteBufferPool$Buffer.release(ArrayByteBufferPool.java:598) ~[jetty-io-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.websocket.core.WebSocketConnection.releaseNetworkBuffer(WebSocketConnection.java:322) ~[jetty-websocket-core-common-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.websocket.core.WebSocketConnection.fillAndParse(WebSocketConnection.java:496) ~[jetty-websocket-core-common-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.websocket.core.WebSocketConnection.onFillable(WebSocketConnection.java:332) ~[jetty-websocket-core-common-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322) ~[jetty-io-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99) ~[jetty-io-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) ~[jetty-io-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:410) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:971) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1201) ~[jetty-util-12.0.7.jar!/:12.0.7]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1156) ~[jetty-util-12.0.7.jar!/:12.0.7]
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
It is possible that issue could be fixed in Jetty library under https://github.com/jetty/jetty.project/issues/12082 but I would appreciate if you can have a look into this problem on your side as well and maybe invest in handling this case and similar ones in a more robust way if that's possible Thanks in advance!
How to reproduce? In our case issue can be reproduced only under high load
Comment From: snicoll
Please report this to Jetty.