Uploaded image for project: 'OpenDJ'
  1. OpenDJ
  2. OPENDJ-4559

All worker threads blocked on ReentrantReadWriteLock in GroupManager

    Details

    • Type: Bug
    • Status: Done
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 6.0.0, 5.5.0, 4.0.0, 3.5.1
    • Fix Version/s: 6.0.0
    • Component/s: core server
    • Labels:
    • Support Ticket IDs:

      Description

      OpenDJ 3.5.1.

      All 16 worker threads are waiting for a lock:

      • worker threads 0,1, 3-15 are waiting for lock 0x7413c26e8.
      • the lock is owned by worker thread 2 (0x712ef4738).
      • worker thread 2 is waiting for write lock on 0x7413c26e8.
      • lock 0x7413c26e8 has no exclusiveOwnerThread, but read lock is held by thread 0x712ef46b0 (worker thread 3).

       

      Worker thread 3 is also waiting for lock 0x7413c26e8.

      • thread stacks (worker threads 3 and 2):
      "Worker Thread 3" prio=10 tid=0x00007fce79213800 nid=0x5cb1 waiting on condition [0x00007fcdeb0ef000]
        java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for  <0x00000007075e6870> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
              at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:731)
              at org.opends.server.core.GroupManager.getGroupInstance(GroupManager.java:502)
              at org.opends.server.extensions.StaticGroup.isMember(StaticGroup.java:414)
              at org.opends.server.extensions.StaticGroup.isMember(StaticGroup.java:443)
              at org.opends.server.api.Group.isMember(Group.java:321)
              at org.opends.server.extensions.IsMemberOfVirtualAttributeProvider.getValues(IsMemberOfVirtualAttributeProvider.java:72)
              at org.opends.server.types.VirtualAttribute.iterator(VirtualAttribute.java:137)
              at org.opends.server.types.AttributeBuilder.addAll(AttributeBuilder.java:686)
              at org.opends.server.types.Entry.mergeAttributeLists(Entry.java:4500)
              at org.opends.server.types.Entry.filterEntry(Entry.java:4436)
              at org.opends.server.core.SearchOperationBasis.returnEntry(SearchOperationBasis.java:573)
              at org.opends.server.core.SearchOperationBasis.returnEntry(SearchOperationBasis.java:454)
              at org.opends.server.core.SearchOperationWrapper.returnEntry(SearchOperationWrapper.java:50)
              at org.opends.server.backends.pluggable.EntryContainer$3.searchBaseObject(EntryContainer.java:904)
              at org.opends.server.backends.pluggable.EntryContainer$3.run(EntryContainer.java:718)
              at org.opends.server.backends.pluggable.EntryContainer$3.run(EntryContainer.java:667)
              at org.opends.server.backends.jeb.JEStorage.read(JEStorage.java:762)
              at org.opends.server.backends.pluggable.TracedStorage.read(TracedStorage.java:496)
              at org.opends.server.backends.pluggable.EntryContainer.search(EntryContainer.java:666)
              at org.opends.server.backends.pluggable.BackendImpl.search(BackendImpl.java:565)
              at org.opends.server.workflowelement.localbackend.LocalBackendSearchOperation.processSearch(LocalBackendSearchOperation.java:224)
              at org.opends.server.workflowelement.localbackend.LocalBackendSearchOperation.processLocalSearch(LocalBackendSearchOperation.java:101)
              at org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement.execute(LocalBackendWorkflowElement.java:732)
              at org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement.executeOnNonRootDSE(LocalBackendWorkflowElement.java:1051)
              at org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement.execute(LocalBackendWorkflowElement.java:894)
              at org.opends.server.core.SearchOperationBasis.run(SearchOperationBasis.java:1007)
              at org.opends.server.extensions.TraditionalWorkerThread.run(TraditionalWorkerThread.java:148)
      
      "Worker Thread 2" prio=10 tid=0x00007fce78a8a800 nid=0x5cb0 waiting on condition [0x00007fcdeb1f0000]
        java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for  <0x00000007413c26e8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
              at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:945)
              at org.opends.server.extensions.StaticGroup.updateMembers(StaticGroup.java:550)
              at org.opends.server.core.GroupManager.doPostModify(GroupManager.java:760)
              at org.opends.server.core.GroupManager.doPostOperation(GroupManager.java:852)
              at org.opends.server.core.PluginConfigManager.invokePostOperationModifyPlugins(PluginConfigManager.java:3255)
              at org.opends.server.workflowelement.localbackend.LocalBackendModifyOperation.invokePostModifyPlugins(LocalBackendModifyOperation.java:336)
              at org.opends.server.workflowelement.localbackend.LocalBackendModifyOperation.processLocalModify(LocalBackendModifyOperation.java:286)
              at org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement.execute(LocalBackendWorkflowElement.java:744)
              at org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement.executeOnNonRootDSE(LocalBackendWorkflowElement.java:1051)
              at org.opends.server.workflowelement.localbackend.LocalBackendWorkflowElement.execute(LocalBackendWorkflowElement.java:894)
              at org.opends.server.core.ModifyOperationBasis.run(ModifyOperationBasis.java:337)
              at org.opends.server.extensions.TraditionalWorkerThread.run(TraditionalWorkerThread.java:148)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                JnRouvignac Jean-Noël Rouvignac
                Reporter:
                wei-yee.lum Wei-Yee Lum
                Dev Assignee:
                Jean-Noël Rouvignac
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: