Comment #4 on issue 1810 by vladimir.ralev: MSS gets stuck in
single-threaded TCP threadpool mode
http://code.google.com/p/mobicents/issues/detail?id=1810
This is a thread dump on how the thread is stuck:
"pool-27-thread-1" prio=1 tid=0x092e1188 nid=0x694f waiting on condition
[0x18c37000..0x18c38120]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:716)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:872)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1179)
at java.util.concurrent.Semaphore.acquire(Semaphore.java:272)
at
gov.nist.javax.sip.parser.PipelinedMsgParser$1.run(PipelinedMsgParser.java:416)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:595)
I think we should never acquire uninterruptibly. Just have some
configurable timeout for safety.