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)