quickfixj icon indicating copy to clipboard operation
quickfixj copied to clipboard

Too many WriteToClosedSessionException when upgrade to quickfixj-2.3.2

Open leonchen83 opened this issue 1 year ago • 28 comments

Describe the bug A clear and concise description of what the bug is.

org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

To Reproduce Steps to reproduce the behavior. Or even better, a unit test or reproducer.

Expected behavior A clear and concise description of what you expected to happen.

No Exception

system information:

  • OS: Linux 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Java version Java21
  • QFJ Version 2.3.2

Additional context Add any other context about the problem here.

Could this issue be related to the changes introduced in #543?

leonchen83 avatar Jan 14 '25 03:01 leonchen83

When exactly does this occur?

chrjohn avatar Jan 14 '25 03:01 chrjohn

In our testing environment, we need to connect to a test LP. If the connection attempt receives no response, this exception occurs every time we reconnect. This issue did not exist in the previous quickfixj version.

leonchen83 avatar Jan 14 '25 03:01 leonchen83

Could you show some log output where the connection attempts are shown in conjunction with the exception?

chrjohn avatar Jan 14 '25 05:01 chrjohn

250114.121008.706: Initiated logon request
250114.121019.705: Disconnecting: Timed out waiting for logon response
250114.121019.706: Already disconnected: Socket exception (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteRejectedException: closing
250114.121020.331: MINA session created: local=/172.30.1.171:50766, class org.apache.mina.transport.socket.nio.NioSocketSession, remote=fixdemo.fxcorporate.com/204.8.241.23:9004
250114.121020.706: Initiated logon request
250114.121031.705: Disconnecting: Timed out waiting for logon response
250114.121031.706: Already disconnected: Socket exception (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteRejectedException: closing
250114.121032.867: MINA session created: local=/172.30.1.171:50782, class org.apache.mina.transport.socket.nio.NioSocketSession, remote=fixdemo.fxcorporate.com/204.8.241.23:9004
250114.121032.871: Initiated logon request
250114.121043.705: Disconnecting: Timed out waiting for logon response
250114.121043.706: Already disconnected: Socket exception (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteRejectedException: closing
250114.121044.207: MINA session created: local=/172.30.1.171:50792, class org.apache.mina.transport.socket.nio.NioSocketSession, remote=fixdemo.fxcorporate.com/204.8.241.23:9004
250114.121044.706: Initiated logon request
250114.121055.705: Disconnecting: Timed out waiting for logon response
250114.121055.706: Already disconnected: Socket exception (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteRejectedException: closing
250114.121056.573: MINA session created: local=/172.30.1.171:50804, class org.apache.mina.transport.socket.nio.NioSocketSession, remote=fixdemo.fxcorporate.com/204.8.241.23:9004
250114.121056.706: Initiated logon request
250114.121107.705: Disconnecting: Timed out waiting for logon response
250114.121107.706: Already disconnected: Socket exception (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteRejectedException: closing
250114.121109.098: MINA session created: local=/172.30.1.171:50818, class org.apache.mina.transport.socket.nio.NioSocketSession, remote=fixdemo.fxcorporate.com/204.8.241.23:9004

leonchen83 avatar Jan 14 '25 05:01 leonchen83

In the log above I see WriteRejectedException. Where does WriteToClosedSessionException occur? Thanks

chrjohn avatar Jan 14 '25 09:01 chrjohn

We have actually split the log into two files. One file contains the WriteToClosedSessionException, and the other contains the WriteRejectedException. The current problem is that whenever a WriteRejectedException occurs, a WriteToClosedSessionException also appears

the other part of log file is following

org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:13:41.803 ERROR[NioProcessor-2675 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:13:42.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:13:42.780 ERROR[NioProcessor-2685 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:13:53.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:13:53.779 ERROR[NioProcessor-2705 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:13:53.803 ERROR[NioProcessor-2695 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:04.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:14:04.779 ERROR[NioProcessor-2715 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:05.803 ERROR[NioProcessor-2725 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:15.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:14:15.779 ERROR[NioProcessor-2735 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:16.090 INFO [system.scheduler-1 AbstractCluster.pulse:292][system.service.cluster]ping server@1, services: 34, elapsed time: 0 ms
25-01-13 21:14:16.092 INFO [system.scheduler-1 AbstractCluster.pulse:292][system.service.cluster]ping trigger@69, services: 2, elapsed time: 1 ms
25-01-13 21:14:16.868 ERROR[NioProcessor-2745 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:27.780 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:14:27.780 ERROR[NioProcessor-2746 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:28.803 ERROR[NioProcessor-2756 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:38.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:14:38.779 ERROR[NioProcessor-2766 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:40.803 ERROR[NioProcessor-2776 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:49.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:14:49.779 ERROR[NioProcessor-2786 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:14:51.803 ERROR[NioProcessor-2796 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:00.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:15:00.780 ERROR[NioProcessor-2806 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:03.803 ERROR[NioProcessor-2816 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:12.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:15:12.779 ERROR[NioProcessor-2826 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:15.803 ERROR[NioProcessor-2827 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:16.090 INFO [system.scheduler-1 AbstractCluster.pulse:292][system.service.cluster]ping server@1, services: 34, elapsed time: 1 ms
25-01-13 21:15:16.091 INFO [system.scheduler-1 AbstractCluster.pulse:292][system.service.cluster]ping trigger@69, services: 2, elapsed time: 0 ms
25-01-13 21:15:24.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:15:24.780 ERROR[NioProcessor-2837 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:27.803 ERROR[NioProcessor-2847 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:36.779 INFO [pipeline.puller-1 UnsubscribeQuotesAction.doProcess:73][hedging.action.unsubscribe.quotes]start to unsubscribe, session: 65592
25-01-13 21:15:36.779 ERROR[NioProcessor-2857 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo.fxcorporate.com/204.8.241.23:9004): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
25-01-13 21:15:39.803 ERROR[NioProcessor-2867 InitiatorIoHandler.exceptionCaught:89]Socket (fixdemo5.fxcorporate.com/204.8.241.132:80): org.apache.mina.core.write.WriteToClosedSessionException
org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864)
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694)
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

leonchen83 avatar Jan 14 '25 09:01 leonchen83

Are you trying to send messages before the logon is established? I am wondering which messages are trying to be written. Could be the sent Logon but on the other hand the Logon should not get sent when the session cannot be established.

chrjohn avatar Jan 14 '25 11:01 chrjohn

We only sent the logon message after the connection was established, without any other messages.

leonchen83 avatar Jan 15 '25 06:01 leonchen83

I checked this and this seems to be caused by internal changes in MINA 2.2.x when destroying the connector. It cannot be caused by closeOnFlush() since that line of code is not reached when that exception is caught in AbstractIoHandler.exceptionCaught(). Question: are you using TLS? I assume it could be TLS handshake messages that are still trying to be written.

chrjohn avatar Jan 27 '25 11:01 chrjohn

We have checked the connection status of the LP, and it is not an SSL connection.

leonchen83 avatar Feb 07 '25 02:02 leonchen83

Could you please post your session config?

chrjohn avatar Feb 07 '25 07:02 chrjohn

That is the dictionary not the config.

chrjohn avatar Feb 08 '25 08:02 chrjohn

We configure session settings by reading MySQL through the program. In this code, the SSL configuration is set to false.

	public SessionSettings create (final HedgingGateway gateway, int id) {
		//
		final short lpId = getLpIdBySessionId(id);
		final StringBuilder r = new StringBuilder(4096);
		HedgingGatewayContext context = gateway.getContext();
		final CompanyManager cm = context.getCompanyManager();
		final HedgingSessionType type = getTypeBySessionId(id);
		final LiquidityProviderPo lp = cm.getLiquidityProvider(lpId);
		QuickfixSessionSettings setting = this.settings.get(lp.getItId());
		
		//
		try {
			//
			r.append("[DEFAULT]").append(this.ls);
			final Map<String, String> defaults = setting.getDefaults();
			if (!isEmpty(defaults)) defaults.forEach((k, v) -> r.append(k).append("=").append(v).append(ls));
			switch(type) {
			case PRICE:
				append(r, "Mock=", getLpConfig(context, lpId, LpConfigType.MOCK, "")).append(this.ls); break;
			case TRADE:
				append(r, "Mock=", getLpConfig(context, lpId, LpConfigType.MOCK, "")).append(this.ls); break;
			}
			
			//
			r.append(this.ls).append("[SESSION]").append(this.ls);
			final Map<String, String> sessions = setting.getSession(type);
			if (!isEmpty(sessions)) sessions.forEach((k, v) -> r.append(k).append("=").append(v).append(ls));
			switch(type) {
			case PRICE:
				r.append("ValidateSequenceNumbers=N").append(this.ls);
				r.append("SenderCompID=").append(lp.getFixPricingSenderId()).append(this.ls);
				r.append("TargetCompID=").append(lp.getFixPricingTargetId()).append(this.ls);
				r.append("SocketUseSSL=").append(lp.isFixPricingSsl() ? "Y" : "N").append(ls);
				r.append("SocketConnectPort=").append(lp.getFixPricingPort()).append(this.ls);
				r.append("SocketConnectHost=").append(lp.getFixPricingHost()).append(this.ls);
				r.append(SETTING_FILE_LOG_VERBOSE).append("=").append(lp.isFixPricingVerbose() ? "Y" : "N").append(this.ls);
				r.append("CheckLatency=").append(getLpConfig(context, lpId, LpConfigType.FIX_CHECK_LATENCY, "N")).append(ls);
				
				if(!isEmpty(lp.getFixPricingAccount())) r.append("Account=").append(lp.getFixPricingAccount()).append(this.ls);
				if(!isEmpty(lp.getFixPricingUsername())) r.append("Username=").append(lp.getFixPricingUsername()).append(this.ls);
				if(!isEmpty(lp.getFixPricingPassword())) r.append("Password=").append(lp.getFixPricingPassword()).append(this.ls);
				if(!isEmpty(lp.getFixPricingSenderSubId())) r.append("SenderSubID=").append(lp.getFixPricingSenderSubId()).append(ls);
				if(!isEmpty(lp.getFixPricingTargetSubId())) r.append("TargetSubID=").append(lp.getFixPricingTargetSubId()).append(ls);
				return new SessionSettings(Streams.toInputStream(r.toString(), this.encoding));
			case TRADE:
				r.append("SenderCompID=").append(lp.getFixTradingSenderId()).append(this.ls);
				r.append("TargetCompID=").append(lp.getFixTradingTargetId()).append(this.ls);
				r.append("SocketUseSSL=").append(lp.isFixTradingSsl() ? "Y" : "N").append(ls);
				r.append("SocketConnectPort=").append(lp.getFixTradingPort()).append(this.ls);
				r.append("SocketConnectHost=").append(lp.getFixTradingHost()).append(this.ls);
				r.append(SETTING_FILE_LOG_VERBOSE).append("=").append(lp.isFixTradingVerbose() ? "Y" : "N").append(this.ls);
				r.append("CheckLatency=").append(getLpConfig(context, lpId, LpConfigType.FIX_CHECK_LATENCY, "Y")).append(ls);
				
				if(!isEmpty(lp.getFixTradingAccount())) r.append("Account=").append(lp.getFixTradingAccount()).append(this.ls);
				if(!isEmpty(lp.getFixTradingUsername())) r.append("Username=").append(lp.getFixTradingUsername()).append(this.ls);
				if(!isEmpty(lp.getFixTradingPassword())) r.append("Password=").append(lp.getFixTradingPassword()).append(this.ls);
				if(!isEmpty(lp.getFixTradingSenderSubId())) r.append("SenderSubID=").append(lp.getFixTradingSenderSubId()).append(ls);
				if(!isEmpty(lp.getFixTradingTargetSubId())) r.append("TargetSubID=").append(lp.getFixTradingTargetSubId()).append(ls);
				return new SessionSettings(Streams.toInputStream(r.toString(), this.encoding));
			default:
				throw new AssertionException("assertion failed, invalid session type: " + type + ", lp: " + lp); // Should not reach here
			}
		} catch(Throwable t) {
			throw new AssertionException("failed to create fix session settings, type: " + type + ", lp: " + lp + ", settings: " + r, t);
		}
	}
(Sat Feb  8 18:03:24 2025,2)(nextop@thorin-dev-localhost)[COMMON]>SELECT ABBREVIATION, FIX_PRICING_SSL, FIX_TRADING_SSL from LIQUIDITY_PROVIDER WHERE id = 376
    -> ;
+--------------+-----------------+-----------------+
| ABBREVIATION | FIX_PRICING_SSL | FIX_TRADING_SSL |
+--------------+-----------------+-----------------+
| FXCM         |               0 |               0 |
+--------------+-----------------+-----------------+
1 row in set (0.00 sec)

leonchen83 avatar Feb 08 '25 09:02 leonchen83

OK, then probably it is the logon message that is tried to be sent. However, I don't think we can do really much about it, given that it only occurs when the session is disconnected with in-flight messages. We could suppress the logging but I don't know if that is desired in all cases...

chrjohn avatar Feb 08 '25 17:02 chrjohn

I also encountered the same problem. In version 2.3.2, I would encounter this exception as long as I called the stop() method.

ki827 avatar Mar 07 '25 06:03 ki827

I also encountered the same problem. In version 2.3.2, I would encounter this exception as long as I called the stop() method.

@ki827 do you happen to have a stack trace from the log? Which stop() method exactly are you calling? I assume you get that exception when the connection is still established and you stop?

chrjohn avatar Mar 08 '25 12:03 chrjohn

stack trace

org.apache.mina.core.write.WriteToClosedSessionException: null
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) ~[mina-core-2.2.4.jar:na]
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) ~[mina-core-2.2.4.jar:na]
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) ~[mina-core-2.2.4.jar:na]
	at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) ~[mina-core-2.2.4.jar:na]
	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) ~[mina-core-2.2.4.jar:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

calling

 Logout logout = new Logout();
 try {
        Session.sendToTarget(logout, sessionId);
 } catch (SessionNotFound e) {
         throw new RuntimeException(e);
 }

ki827 avatar Mar 10 '25 02:03 ki827

I too would like to report the same error stack trace. this happened when i updated quickfix version from 2.3.1 to 2.3.2. This has updated mina-core to 2.2.4. the error stack is showing up everytime initiator.stop() is called or any other disconnection happens.

Vijay-kommalapati avatar Mar 10 '25 04:03 Vijay-kommalapati

I don't think this is a problem except it doesn't look esthetically pleasing. If you intentionally close down the connector, you will need to make sure that no attempts are made to send additional messages after that.

@ki827

Can you create a minimal working test case on your branch? I tried to do something you suggested, but I don't get this message for non SSL settings.

    @Test
    public void test() throws Exception {
        int freePort = AvailablePortFinder.getNextAvailable();

        SocketAcceptor acceptor = new SocketAcceptor(new ApplicationAdapter(), new MemoryStoreFactory(), createAcceptorSettings(freePort), new DefaultMessageFactory());

        try {
            acceptor.start();

            SocketInitiator initiator = new SocketInitiator(new ApplicationAdapter(), new MemoryStoreFactory(), createInitiatorSettings("ZULU", "ALFA", freePort), new DefaultMessageFactory());

            try {
                initiator.start();

                SessionID sessionID = new SessionID(FixVersions.BEGINSTRING_FIX44, "ZULU", "ALFA");

                try {
                    Session.sendToTarget(new Logout(), sessionID);
                } catch (SessionNotFound e) {
                    throw new RuntimeException(e);
                }

                Thread.sleep(2_000);

            } finally {
                initiator.stop();
            }
        } finally {
            acceptor.stop();
        }
    }

the-thing avatar Mar 10 '25 16:03 the-thing

Had the same isssue with Java 21 builds. Java 21 + quickfixj 2.3.2 version. No issue with Java 17 builds with same quickfixj 2.3.2 version. org.apache.mina.core.write.WriteToClosedSessionException: null at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583)

santhosh34 avatar Apr 29 '25 03:04 santhosh34

@chrjohn I noticed that this issue occurs while writing messages to files, and it seems to be caused by Java 21... as a temporary workaround used java arguments:
--add-opens java.base/java.io=ALL-UNNAMED while starting the process and issue is gone.

And Yes, we are using TLS

santhosh34 avatar Apr 30 '25 09:04 santhosh34

@santhosh34 , cool, thanks for the workaround.

chrjohn avatar Apr 30 '25 10:04 chrjohn

Hi, we have been seeing this issue since the upgrade to 2.3.2 earlier this year too. The exception actually carries the request, which have caused it, it just isn't logged anywhere.

The workaround by @santhosh34 has reduced the occurrence significantly, however on disconnect, the exception persists

In our case, no matter how the session ends (gracefully or not, from our side or the other) this exception always pops up and the reason a TLS close_notify frame.

The request is WriteRequest: HeapBuffer@774937bc[pos=0 lim=23 cap=33418: 15 03 03 00 12 ... and is always 23 bytes long.

tomasdostalik avatar Oct 02 '25 06:10 tomasdostalik

The bytes you are seeing belong to TLS alert message.

15 = Content Type (0x15 = 21 decimal = Alert protocol) 03 03 = TLS version (TLS 1.2) 00 12 = Length (18 bytes of payload follow)

5 (header) + 18 (payload) = 23 bytes in total

Most likely due to connection termination.

the-thing avatar Oct 02 '25 14:10 the-thing

@the-thing do you have an idea why this message is now occurring more frequently with the new MINA version? Does it make sense to filter it if possible?

chrjohn avatar Oct 02 '25 18:10 chrjohn

I don't. I can have a look, but I need a minimal working example. I failed to see this error when I was trying to adapt SSLCertificateTest.

the-thing avatar Oct 02 '25 18:10 the-thing

Nevermind, you are right, I think you should not spend time on this without a reproducer.

chrjohn avatar Oct 02 '25 19:10 chrjohn