Hi,
thanks for the patch. I am using 2.0.16.
Oddly enough when I run all MINA tests then the ConnectorTest is hanging on my machine in the
testTCPWithSSL method. But I don't know if this is related. (stack trace attached)
However, I will try out your patch and let you know.
Thanks again,
Chris.
On 10/10/17 20:47, Jonathan Valliere wrote:
Which version of Mina are you using or are you building from Git?
Please pull tag/2.0.16 from GIT and apply the attached patch. Let me know if that fixes your
problem. Sorry about the excess changes in the patch; the java code formatter made a lot of
changes. If this works then we can create a JIRA bug.
On Tue, Oct 10, 2017 at 4:49 AM, Christoph John <[email protected]
<mailto:[email protected]>> wrote:
Hi,
thanks for your reply.
In fact it is hanging forever, i.e. until the process stops. I have
attached the original
message I've sent to the mailing list. It only does occur sometimes for SSL
connections with a
failing handshake.
Unfortunately I have no reproducable example for MINA itself. I could
probably put something
together for QuickFIX/J (the open source project I am working on).
My OS is Ubuntu 14.04.5, JDK1.8_144 and the problem appears not so often on
my machine but
almost every time on the TravisCI build server
(https://travis-ci.org/quickfix-j/quickfixj/builds/283210509
<https://travis-ci.org/quickfix-j/quickfixj/builds/283210509>). As a
result, some of the SSL
related tests are failing. TravisCI has almost similar setup with
JDK1.8_144 and Debian Linux.
What would be a good starting point to create a test? I see that there is
an SslTest in the
mina-core module. So I probably have to change that test to repeatedly
connect and get a
handshake exception everytime and then take a number of stack traces.
Thanks,
Chris.
On 09/10/17 14:51, Jonathan Valliere wrote:
What OS / Java Version / etc; Do you have a reproducible example?
On Mon, Oct 9, 2017 at 8:34 AM, Jonathan Valliere <[email protected]
<mailto:[email protected]>> wrote:
Let me know if its hanging more than 1s
On Mon, Oct 9, 2017 at 5:08 AM, Christoph John <[email protected]
<mailto:[email protected]>> wrote:
Hi,
I have another question regarding this one. There is
https://issues.apache.org/jira/browse/DIRMINA-1060
<https://issues.apache.org/jira/browse/DIRMINA-1060> which also
sounds a little like
the problem I'm having. When the connectors are hanging in the call
to dispose() then
there always is an accompanying NioProcessor which is hanging in
select().
Example:
"NioProcessor-60" #100328 prio=5 os_prio=0 tid=0x00007f2a10003000
nid=0x2e71 runnable
[0x00007f2a388b1000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at
sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
at
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000e239c118> (a sun.nio.ch.Util$3)
- locked <0x00000000e239c108> (a
java.util.Collections$UnmodifiableSet)
- locked <0x00000000e239bed0> (a
sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at
org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:98)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1075)
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)
"NioSocketConnector-38" #100326 prio=5 os_prio=0
tid=0x00007f2a3001d800 nid=0x2e6f in
Object.wait() [0x00007f2a1f2d3000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.mina.core.future.De
<http://org.apache.mina.core.future.De>faultIoFuture.await0(DefaultIoFuture.java:209)
- locked <0x00000000e246ae08> (a
org.apache.mina.core.future.De
<http://org.apache.mina.core.future.De>faultIoFuture)
at org.apache.mina.core.future.De
<http://org.apache.mina.core.future.De>faultIoFuture.awaitUninterruptibly(DefaultIoFuture.java:141)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.dispose(AbstractPollingIoProcessor.java:188)
at
org.apache.mina.core.service.SimpleIoProcessorPool.dispose(SimpleIoProcessorPool.java:329)
- locked <0x00000000e246ae40> (a java.lang.Object)
at
org.apache.mina.core.polling.AbstractPollingIoConnector$Connector.run(AbstractPollingIoConnector.java:582)
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)
At first I thought that this was related to
https://issues.apache.org/jira/browse/DIRMINA-1059
<https://issues.apache.org/jira/browse/DIRMINA-1059>. In that
ticket the
synchronization was improved. However, I am also running into the
problem with a
build of 2.0.17-SNAPSHOT where DIRMINA-1059 was solved.
So my only hope was DIRMINA-1060 ;) Could this improve the
situation?
Thanks,
Chris.
--
Christoph John
Development & Support
Direct: +49 241 557080-28 <tel:%2B49%20241%20557080-28>
Mailto:[email protected] <mailto:[email protected]>
http://www.macd.com <http://www.macd.com/>
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
MACD GmbH
Oppenhoffallee 103
<https://maps.google.com/?q=Oppenhoffallee+103&entry=gmail&source=g>
D-52066 Aachen
Tel: +49 241 557080-0 <tel:%2B49%20241%20557080-0> | Fax: +49 241
557080-10
<tel:%2B49%20241%20557080-10>
Amtsgericht Aachen: HRB 8151
Ust.-Id: DE 813021663
Geschäftsführer: George Macdonald
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
take care of the environment - print only if necessary
--
Christoph John
Development & Support
Direct: +49 241 557080-28 <tel:+49%20241%2055708028>
Mailto:[email protected]
http://www.macd.com <http://www.macd.com/>
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
MACD GmbH
Oppenhoffallee 103
D-52066 Aachen
Tel: +49 241 557080-0 | Fax: +49 241 557080-10
Amtsgericht Aachen: HRB 8151
Ust.-Id: DE 813021663
Geschäftsführer: George Macdonald
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
take care of the environment - print only if necessary
---------- Forwarded message ----------
From: Christoph John <[email protected]
<mailto:[email protected]>>
To: [email protected] <mailto:[email protected]>
Cc:
Bcc:
Date: Wed, 26 Jul 2017 13:59:58 +0200
Subject: leaking NioProcessors/NioSocketConnectors hanging in call to
dispose
Hi,
I am a developer and maintainer of the QuickFIX/J project
(https://github.com/quickfix-j/quickfixj
<https://github.com/quickfix-j/quickfixj>) and I have
a question regarding NioSocketConnectors.
We are facing a problem when there is a process that constantly (every 30
seconds) tries to
connect to a counterparty and the connection is established but dropped
shortly after. Then
sometimes the NioProcessors/NioSocketConnectors are not cleaned up
properly. In the stack
trace we see them hanging in a call to dispose:
"NioProcessor-1140" #239 prio=5 os_prio=0 tid=0x0000000001fe1800 nid=0x2523
runnable
[0x00007f9c67e8f000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000f6699e60> (a sun.nio.ch.Util$3)
- locked <0x00000000f6699e50> (a
java.util.Collections$UnmodifiableSet)
- locked <0x00000000f6699c18> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at
org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:98)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1075)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
"NioSocketConnector-68" #238 prio=5 os_prio=0 tid=0x00007f9c70caf000
nid=0x2522 in
Object.wait() [0x00007f9c6af9f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.mina.core.future.De
<http://org.apache.mina.core.future.De>faultIoFuture.await0(DefaultIoFuture.java:209)
- locked <0x00000000f66ac718> (a org.apache.mina.core.future.De
<http://org.apache.mina.core.future.De>faultIoFuture)
at org.apache.mina.core.future.De
<http://org.apache.mina.core.future.De>faultIoFuture.awaitUninterruptibly(DefaultIoFuture.java:141)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.dispose(AbstractPollingIoProcessor.java:188)
at
org.apache.mina.core.service.SimpleIoProcessorPool.dispose(SimpleIoProcessorPool.java:329)
- locked <0x00000000f66ac750> (a java.lang.Object)
at
org.apache.mina.core.polling.AbstractPollingIoConnector$Connector.run(AbstractPollingIoConnector.java:582)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
It does not happen very often: about 5% of the connection attempts leave a
NioSocketConnector
hanging.
It only seems to happen though when the connection is disconnected by
"javax.net.ssl.SSLHandshakeException: SSL handshake failed". Although there
are cases when
there is no leak even on an SSLHandshakeException.
If the connection was reset "normally" by "java.io.IOException: Connection reset
by peer" then
the leak does not seem to occur. It also does not occur when the connection
is refused right away.
Since this seems to be related to SSL connections: is there something that
we need to take
care of when using the SSL filter?
The code for the IoSessionInitiator can be found here:
https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/mina/initiator/IoSessionInitiator.java
<https://github.com/quickfix-j/quickfixj/blob/master/quickfixj-core/src/main/java/quickfix/mina/initiator/IoSessionInitiator.java>
I have added some comments in this gist (starting with "chrjohn"):
https://gist.github.com/chrjohn/2671f06d80e8d917d9061b573477ec5b
<https://gist.github.com/chrjohn/2671f06d80e8d917d9061b573477ec5b>
I cannot rule out that we might be doing something wrong here, so any
pointer is appreciated. :)
Thanks in advance for your help and best regards,
Chris.
--
Christoph John
Development & Support
Direct: +49 241 557080-28 <tel:%2B49%20241%20557080-28>
Mailto:[email protected] <mailto:[email protected]>
http://www.macd.com <http://www.macd.com/>
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
MACD GmbH
Oppenhoffallee 103
D-52066 Aachen
Tel: +49 241 557080-0 <tel:%2B49%20241%20557080-0> | Fax: +49 241 557080-10
<tel:%2B49%20241%20557080-10>
Amtsgericht Aachen: HRB 8151
Ust.-Id: DE 813021663
Geschäftsführer: George Macdonald
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
take care of the environment - print only if necessary
--
Christoph John
Development & Support
Direct: +49 241 557080-28
Mailto:[email protected]
http://www.macd.com <http://www.macd.com/>
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
MACD GmbH
Oppenhoffallee 103
D-52066 Aachen
Tel: +49 241 557080-0 | Fax: +49 241 557080-10
Amtsgericht Aachen: HRB 8151
Ust.-Id: DE 813021663
Geschäftsführer: George Macdonald
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
take care of the environment - print only if necessary
2017-10-11 10:28:40
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.144-b01 mixed mode):
"RMI TCP Connection(idle)" #35 daemon prio=9 os_prio=0 tid=0x00007fb298002800
nid=0x7fb8 waiting on condition [0x00007fb2e08a8000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000eb48fd28> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"JMX server connection timeout 34" #34 daemon prio=9 os_prio=0
tid=0x00007fb2b0022800 nid=0x7fb2 in Object.wait() [0x00007fb2e0aaa000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb579b28> (a [I)
at
com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)
- locked <0x00000000eb579b28> (a [I)
at java.lang.Thread.run(Thread.java:748)
"RMI Scheduler(0)" #33 daemon prio=9 os_prio=0 tid=0x00007fb2b0021000
nid=0x7fb0 waiting on condition [0x00007fb2e07a7000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000eb49fd58> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"RMI TCP Connection(idle)" #32 daemon prio=9 os_prio=0 tid=0x00007fb298001800
nid=0x7faf waiting on condition [0x00007fb2e81f0000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000eb48fd28> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
"RMI TCP Accept-0" #31 daemon prio=9 os_prio=0 tid=0x00007fb28408f000
nid=0x7fac runnable [0x00007fb2e06a6000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513)
at
sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
at
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
at
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
at java.lang.Thread.run(Thread.java:748)
"Attach Listener" #29 daemon prio=9 os_prio=0 tid=0x00007fb2c8001000 nid=0x7efc
waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"NioDatagramAcceptor-7" #25 prio=5 os_prio=0 tid=0x00007fb2f84af800 nid=0x7e8a
runnable [0x00007fb2e04a4000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000eacb3438> (a sun.nio.ch.Util$3)
- locked <0x00000000eacb3428> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000eacb3310> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at
org.apache.mina.transport.socket.nio.NioDatagramAcceptor.select(NioDatagramAcceptor.java:745)
at
org.apache.mina.transport.socket.nio.NioDatagramAcceptor$Acceptor.run(NioDatagramAcceptor.java:162)
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)
"NioSocketAcceptor-8" #24 prio=5 os_prio=0 tid=0x00007fb2f8458800 nid=0x7e89
runnable [0x00007fb2e1208000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000eacbc758> (a sun.nio.ch.Util$3)
- locked <0x00000000eacbc748> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000eacbc630> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)
at
org.apache.mina.transport.socket.nio.NioSocketAcceptor.select(NioSocketAcceptor.java:281)
at
org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.run(AbstractPollingIoAcceptor.java:460)
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)
"ExpiringMapExpirer-1" #9 daemon prio=5 os_prio=0 tid=0x00007fb28c001800
nid=0x7e84 waiting on condition [0x00007fb2e09a9000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.mina.util.ExpiringMap$Expirer.run(ExpiringMap.java:288)
at java.lang.Thread.run(Thread.java:748)
"Service Thread" #8 daemon prio=9 os_prio=0 tid=0x00007fb2f819a800 nid=0x7e77
runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread2" #7 daemon prio=9 os_prio=0 tid=0x00007fb2f8185800
nid=0x7e76 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007fb2f8183800
nid=0x7e75 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007fb2f8180800
nid=0x7e73 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007fb2f817f000
nid=0x7e72 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007fb2f814b000 nid=0x7e71 in
Object.wait() [0x00007fb2e88f7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ed218a90> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x00000000ed218a90> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007fb2f8146800
nid=0x7e70 in Object.wait() [0x00007fb2e89f8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000ed218c48> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0x00000000ed218c48> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
"main" #1 prio=5 os_prio=0 tid=0x00007fb2f800a000 nid=0x7e6a in Object.wait()
[0x00007fb30118c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eacd0bc8> (a
org.apache.mina.core.future.DefaultWriteFuture)
at
org.apache.mina.core.future.DefaultIoFuture.await0(DefaultIoFuture.java:209)
- locked <0x00000000eacd0bc8> (a
org.apache.mina.core.future.DefaultWriteFuture)
at
org.apache.mina.core.future.DefaultIoFuture.awaitUninterruptibly(DefaultIoFuture.java:141)
at
org.apache.mina.core.future.DefaultWriteFuture.awaitUninterruptibly(DefaultWriteFuture.java:127)
at
org.apache.mina.example.echoserver.ConnectorTest.testConnector0(ConnectorTest.java:188)
at
org.apache.mina.example.echoserver.ConnectorTest.testConnector(ConnectorTest.java:130)
at
org.apache.mina.example.echoserver.ConnectorTest.testConnector(ConnectorTest.java:102)
at
org.apache.mina.example.echoserver.ConnectorTest.testTCPWithSSL(ConnectorTest.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
"VM Thread" os_prio=0 tid=0x00007fb2f813f000 nid=0x7e6f runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007fb2f801f000 nid=0x7e6b
runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007fb2f8021000 nid=0x7e6c
runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007fb2f8022800 nid=0x7e6d
runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007fb2f8024800 nid=0x7e6e
runnable
"VM Periodic Task Thread" os_prio=0 tid=0x00007fb2f819d800 nid=0x7e78 waiting
on condition
JNI global references: 297