Threads locking on LocalRegistryInterceptor
Issue
- We observed a lot of thread lock contention around the JBoss ESB Service Registry object waiting to acquire a ReentrantReadWriteLock.
## Sample Thread exposing thread lock contention
"ajp-tcffep8r6ap75.ffe.ecap.cciio%2F10.153.199.14-8009-97" daemon prio=10 tid=0x00007fb0040f8800 nid=0x4686 waiting on condition [0x00007faf56623000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000067eecc9c0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) // waiting to acquire a ReentrantReadWriteLock
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:941)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1261)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
at org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor$ServiceInfo.acquireReadLock(CachingRegistryInterceptor.java:434) // Potential culprit
at org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor.getEPRs(CachingRegistryInterceptor.java:323)
at org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor.findEPRs(CachingRegistryInterceptor.java:137)
at org.jboss.internal.soa.esb.services.registry.LocalRegistryInterceptor.findEPRs(LocalRegistryInterceptor.java:136)
at org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor.findEPRs(InVMRegistryInterceptor.java:88)
at org.jboss.soa.esb.services.registry.RegistryFactory$HeadRegistryInterceptor.findEPRs(RegistryFactory.java:229)
at org.jboss.soa.esb.listeners.RegistryUtil.getEprs(RegistryUtil.java:228)
at org.jboss.soa.esb.client.ServiceInvoker.loadServiceClusterInfo(ServiceInvoker.java:567)
at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:373)
at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:221)
Environment
- JBoss SOA Platform (SOA-P) 5.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.