I'm using ema-3.5.0.1.jar with user dispatch mode.
The application sometimes deadlocks when it starts up. The deadlock comes from dispatcher threads. How long would it take to fix it? Is there a workaround? Below is the thread dump of relevant threads
"dispatcher-0" - Thread t@56 java.lang.Thread.State: WAITING at java.base@11/jdk.internal.misc.Unsafe.park(Native Method) - waiting to lock <79b42f53> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) owned by "dispatcher-2" t@60 at java.base@11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) at java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885) at java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:917) at java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1240) at java.base@11/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:267) at app//com.thomsonreuters.upa.valueadd.reactor.Reactor.submitChannel(Reactor.java:1989) at app//com.thomsonreuters.upa.valueadd.reactor.WlStream.encodeIntoBufferAndWrite(WlStream.java:748) at app//com.thomsonreuters.upa.valueadd.reactor.WlStream.sendCloseMsg(WlStream.java:793) at app//com.thomsonreuters.upa.valueadd.reactor.WlStream.timeout(WlStream.java:305) at app//com.thomsonreuters.upa.valueadd.reactor.Watchlist.timeout(Watchlist.java:328) at app//com.thomsonreuters.upa.valueadd.reactor.Reactor.processWorkerEvent(Reactor.java:2681) at app//com.thomsonreuters.upa.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:1972) at app//com.thomsonreuters.upa.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:559) at app//com.thomsonreuters.ema.access.OmmBaseImpl.rsslReactorDispatchLoop(OmmBaseImpl.java:1336) at app//com.thomsonreuters.ema.access.OmmBaseImpl.dispatch(OmmBaseImpl.java:598) at app//com.thomsonreuters.ema.access.OmmConsumerImpl.dispatch(OmmConsumerImpl.java:185) at app//... at java.base@11/java.lang.Thread.run(Thread.java:834) Locked ownable synchronizers: - locked <1e9a6ed3> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) - locked <60869d82> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) - locked <9440f7d> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"dispatcher-2" - Thread t@60 java.lang.Thread.State: WAITING at java.base@11/jdk.internal.misc.Unsafe.park(Native Method) - waiting to lock <1e9a6ed3> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) owned by "dispatcher-0" t@56 at java.base@11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194) at java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885) at java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:917) at java.base@11/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1240) at java.base@11/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:267) at app//com.thomsonreuters.upa.valueadd.reactor.Reactor.submitChannel(Reactor.java:1989) at app//com.thomsonreuters.upa.valueadd.reactor.WlStream.encodeIntoBufferAndWrite(WlStream.java:748) at app//com.thomsonreuters.upa.valueadd.reactor.WlStream.sendCloseMsg(WlStream.java:793) at app//com.thomsonreuters.upa.valueadd.reactor.WlStream.timeout(WlStream.java:305) at app//com.thomsonreuters.upa.valueadd.reactor.Watchlist.timeout(Watchlist.java:328) at app//com.thomsonreuters.upa.valueadd.reactor.Reactor.processWorkerEvent(Reactor.java:2681) at app//com.thomsonreuters.upa.valueadd.reactor.Reactor.dispatchChannel(Reactor.java:1972) at app//com.thomsonreuters.upa.valueadd.reactor.ReactorChannel.dispatch(ReactorChannel.java:559) at app//com.thomsonreuters.ema.access.OmmBaseImpl.rsslReactorDispatchLoop(OmmBaseImpl.java:1336) at app//com.thomsonreuters.ema.access.OmmBaseImpl.dispatch(OmmBaseImpl.java:598) at app//com.thomsonreuters.ema.access.OmmConsumerImpl.dispatch(OmmConsumerImpl.java:185) at app//... at java.base@11/java.lang.Thread.run(Thread.java:834) Locked ownable synchronizers: - locked <79b42f53> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) - locked <75883433> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) - locked <6da685c> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)