[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16925413#comment-16925413 ] Christoph John commented on DIRMINA-1119: - Just a question: you are surely testing this with MINA 2.1.3? Because QuickFIX/J with MINA 2.1.3 has not been released yet. But I guess you simply swapped out the mina JARs then? > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:668) > - locked <0x2ef07520> (a org.apache.mina.filter.ssl.SslHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apa
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16925684#comment-16925684 ] Sergey Staritsin commented on DIRMINA-1119: --- [~chrjohn] Yes, that's correct. We are using QuickfixJ 2.1.1 and Apache Mina 2.1.3. > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:668) > - locked <0x2ef07520> (a org.apache.mina.filter.ssl.SslHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) >
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033452#comment-17033452 ] Anton Novikov commented on DIRMINA-1119: We've just had an almost exactly the same issue in the same setup (QucikFIX/J 2.11 and Apache Mina 2.1.3), this time between NioProcessor and QFJ Timer. Attaching the thread dump in case it helps: [^Deadlock_QFJ Timer_NioProcessor.txt] > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:668) > - locked <0x2ef07520> (a org.apache.mina.filter.ssl.SslHandler) > at > org.apac
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033599#comment-17033599 ] Jonathan Valliere commented on DIRMINA-1119: Your deadlock appears to be due to the Proxy mechanism. One thread is holding SSL while writing to the Proxy while another thread is reading to the Proxy trying to get the SSL. Two locks are holding each other while trying to obtain the other. This could be fixed by having a read and write lock on the Proxy instead of a single lock. > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(S
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033661#comment-17033661 ] Anton Novikov commented on DIRMINA-1119: Is there a reason why ProxyFilter holds the lock when calling the next filter in the first place? I looked through the relevant piece of code and it doesn't seem to be necessary. It is harder to argue about SslFilter, but it probably shouldn't do that either. Unfortunately, I am not familiar with the code, so I have to rely on the judgement of someone who is > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilte
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033671#comment-17033671 ] Jonathan Valliere commented on DIRMINA-1119: That might be more of a question for [~elecharny] > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:668) > - locked <0x2ef07520> (a org.apache.mina.filter.ssl.SslHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(Defau
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17034030#comment-17034030 ] Emmanuel Lécharny commented on DIRMINA-1119: I'm afraid I'm not capable of giving you some clue either. This is one of the rare MINA parts I'm not familiar with... > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Priority: Critical > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:668) > - locked <0x2ef07520> (a org.apache.mina.filter.ssl.SslHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > o
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17394332#comment-17394332 ] Jonathan Valliere commented on DIRMINA-1119: This will probably be fixed from the changed in DIRMINA-1132 but I need some example code to reproduce this in order to verify that it is fixed. > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Assignee: Jonathan Valliere >Priority: Critical > Fix For: 2.2.0 > > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:668) > - locked <0x2ef07520> (a org.apache.mina.filter.ssl.SslHandler) > at > org.apache.mina.core.
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17505314#comment-17505314 ] Michael Franz commented on DIRMINA-1119: I have experienced this same issue and after looking into it like others, I am not 100% sure what the fix should be. This issues has been around for a while, hopefully we can fix it soon. My issue occurs when writing out a message (SSL -> Proxy) and reading a message (Proxy -> SSL). I have read the code and the documentation for the SSLFilter [https://mina.apache.org/mina-project/userguide/ch11-ssl-filter/ch11-ssl-filter.html] and ProxyFilter (there is none). Since the SSL filter has great details and states that "It’s even worse : you can’t process an incoming message *and* and outgoing message at the same time." So, reads and write cannot occur at the same time, which explains the synchronization in the SslFilter around the SslHandler. However, there is no documentation for the ProxyFilter and the code states it is based on the SslFilter. It is possible that the same synchronization around ProxyLogicHandler was just a blind copy. This leads me to believe the the easiest fix to this issue is to remove the synchronization block in the ProxyFilter as it is not required to protect the state of the ProxyLogicHandler from reading and writing occurring at the same time. If the ProxyLogicHandler (specifically the HttpSmartProxyHandler - the implementation my issues occurs with) needs to be protected, then I fear that the solution is to synchronize around the entire filter chain to prevent filters locking themselves and then passing the processing to another filter that may want to also lock itself. Another solution would be to reimplement the SslHandler to use an SslEngine that can both read and write at the same time. Note:I have tried to test this, but I cannot reproduce a build following the instructions [https://mina.apache.org/mina-project/developer-guide.html] . I get test failures trying to ensure a valid baseline for 2.1.6 and 2.1.x. > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Assignee: Jonathan Valliere >Priority: Critical > Fix For: 2.2.0 > > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPo
[jira] [Commented] (DIRMINA-1119) Deadlock when using SSL and proxy
[ https://issues.apache.org/jira/browse/DIRMINA-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17572389#comment-17572389 ] Christoph John commented on DIRMINA-1119: - Anyone that wants to check if the issue is fixed within QuickFIX/J using the current MINA 2.2.1 please check this branch https://github.com/quickfix-j/quickfixj/tree/chrjohn-mina-2.2.0 Build instructions: https://github.com/quickfix-j/quickfixj/tree/chrjohn-mina-2.2.0#build-instructions > Deadlock when using SSL and proxy > - > > Key: DIRMINA-1119 > URL: https://issues.apache.org/jira/browse/DIRMINA-1119 > Project: MINA > Issue Type: Bug > Components: Core, Filter >Affects Versions: 2.1.3 >Reporter: Sergey Staritsin >Assignee: Jonathan Valliere >Priority: Critical > Fix For: 2.2.0 > > Attachments: Deadlock_QFJ Timer_NioProcessor.txt > > > The issue seems to be the same as DIRMINA-995 (at least they have exactly the > same symptoms and conditions). > > 2019-09-09 12:04:38 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.151-b12 mixed mode): > Found one Java-level deadlock: > = > "NioProcessor-138": > waiting to lock monitor 0x0001040b88f8 (object 0x2ef07520, a > org.apache.mina.filter.ssl.SslHandler), > which is held by "OutputEventRoutingHandler" > "OutputEventRoutingHandler": > waiting to lock monitor 0x00010386a108 (object 0x2eff53b0, a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler), > which is held by "NioProcessor-138" > > Java stack information for the threads listed above: > === > "NioProcessor-138": > at > org.apache.mina.filter.ssl.SslFilter.getSslSessionHandler(SslFilter.java:823) > - waiting to lock <0x2ef07520> (a > org.apache.mina.filter.ssl.SslHandler) > at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:499) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.proxy.filter.ProxyFilter.messageReceived(ProxyFilter.java:153) > - locked <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1222) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1211) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > "OutputEventRoutingHandler": > at org.apache.mina.proxy.filter.ProxyFilter.writeData(ProxyFilter.java:214) > - waiting to lock <0x2eff53b0> (a > org.apache.mina.proxy.handlers.socks.Socks5LogicHandler) > at org.apache.mina.proxy.filter.ProxyFilter.filterWrite(ProxyFilter.java:198) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) > at > org.apache.mina.filter.ssl.SslHandler.flushFilterWrite(SslHandler.java:310) > at org.apache.mina.filter.ssl.SslFil