Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.0.2
-
None
-
None
-
OS: Win32 XP-Pro
rxtx Version :2.1.7.4_v20071016
Description
It seems that an starvation occures sometimes when we call close(true) on a SerialSession, the method never returns.
We observed this case with JConsole, they are no Deadlocks detectable, so we assume that we have a starvation here.
Here are the Stack traces of 2 involved Threads :
---------------------------------------------------------------------------------------------------
Name: Thread-17
State: RUNNABLE
Total blocked: 0 Total waited: 0
Stack trace:
gnu.io.RXTXPort.eventLoop(Native Method)
gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)
---------------------------------------------------------------------------------------------------
Name: Worker-6
State: TIMED_WAITING
Total blocked: 32.336 Total waited: 2.860
Stack trace:
java.lang.Thread.sleep(Native Method)
gnu.io.RXTXPort.close(RXTXPort.java:1025)
- locked gnu.io.RXTXPort@16ba7f9
org.apache.mina.transport.serial.SerialSessionImpl$SerialIoProcessor.remove(SerialSessionImpl.java:302)
org.apache.mina.transport.serial.SerialSessionImpl$SerialIoProcessor.remove(SerialSessionImpl.java:1)
org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.filterClose(DefaultIoFilterChain.java:634)
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:525)
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:46)
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:813)
org.apache.mina.core.filterchain.IoFilterAdapter.filterClose(IoFilterAdapter.java:143)
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:525)
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:46)
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:813)
org.apache.mina.core.filterchain.IoFilterAdapter.filterClose(IoFilterAdapter.java:143)
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:525)
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:46)
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:813)
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.filterClose(DefaultIoFilterChain.java:740)
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:525)
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterClose(DefaultIoFilterChain.java:518)
org.apache.mina.core.session.AbstractIoSession.close(AbstractIoSession.java:272)
org.apache.mina.core.session.AbstractIoSession.close(AbstractIoSession.java:254)