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

Write operations to non-groups force groups to be reloaded

    XMLWordPrintable

    Details

    • Support Ticket IDs:
    • Sprint:
      Sprint 18

      Description

      There are a small number of static groups, one has 250k members. Others are smaller.

      Run searchrate (requesting isMemberOf) over the user entries while doing a bulk load (ldapmodify -a) in parallel. The search rate plummets, and jstack shows that almost all the Worker threads are stuck in:

      "Worker Thread 14" prio=5 tid=0x00007ff463e49000 nid=0xd703 waiting for monitor entry [0x000000012290f000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.opends.server.extensions.StaticGroup.reloadIfNeeded(StaticGroup.java:582)
      	- waiting to lock <0x0000000703116278> (a org.opends.server.extensions.StaticGroup)
      	at org.opends.server.extensions.StaticGroup.isMember(StaticGroup.java:530)
      	at org.opends.server.extensions.StaticGroup.isMember(StaticGroup.java:565)
      	at org.opends.server.api.Group.isMember(Group.java:360)
      	at org.opends.server.extensions.IsMemberOfVirtualAttributeProvider.hasValue(IsMemberOfVirtualAttributeProvider.java:168)
      	at org.opends.server.types.VirtualAttribute.isEmpty(VirtualAttribute.java:218)
      	at org.opends.server.types.Entry.mergeAttributeLists(Entry.java:5685)
      	at org.opends.server.types.Entry.filterEntry(Entry.java:5635)
      [...]
      

      It looks like the post operation hooks in GroupManager are changing the refreshToken when any entry is changed, not just group entries.

        Attachments

          Activity

            People

            • Assignee:
              ludo Ludovic Poitou
              Reporter:
              cjr Chris Ridd
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: