Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-38289

"Error occurred while refreshing the cache for directory" due to "Passed List had more than one value"

    XMLWordPrintable

Details

    Description

      Symptoms

      LDAP synchronisation fails with the following error in atlassian-jira.log:

      2014-03-05 06:30:15,246 QuartzScheduler_Worker-1 INFO      [atlassian.crowd.directory.DbCachingRemoteDirectory] failed synchronisation complete for directory [ 10000 ] in [ 12ms ]
      2014-03-05 06:30:15,667 QuartzScheduler_Worker-1 ERROR      [atlassian.crowd.directory.DbCachingDirectoryPoller] Error occurred while refreshing the cache for directory [ 10000 ].
      java.lang.IllegalArgumentException: Passed List had more than one value.
          at org.ofbiz.core.entity.EntityUtil.getOnly(EntityUtil.java:62)
          at com.atlassian.jira.crowd.embedded.ofbiz.OfBizInternalMembershipDao.isDirectMember(OfBizInternalMembershipDao.java:85)
          at com.atlassian.jira.crowd.embedded.ofbiz.OfBizInternalMembershipDao.isGroupDirectMember(OfBizInternalMembershipDao.java:80)
          at com.atlassian.jira.crowd.embedded.ofbiz.OfBizDelegatingMembershipDao.isGroupDirectMember(OfBizDelegatingMembershipDao.java:70)
          at com.atlassian.crowd.directory.AbstractInternalDirectory.isGroupDirectGroupMember(AbstractInternalDirectory.java:711)
          at com.atlassian.crowd.directory.AbstractInternalDirectory.removeGroupFromGroup(AbstractInternalDirectory.java:768)
          at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.removeGroupMembershipsForGroup(DbCachingRemoteChangeOperations.java:879)
          at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.syncGroupMembersForGroup(DirectoryCacheImplUsingChangeOperations.java:145)
          at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseMemberships(AbstractCacheRefresher.java:149)
          at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:84)
          at com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresher.synchroniseAll(UsnChangedCacheRefresher.java:124)
          at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:644)
          at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:63)
          at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)
          at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJob.execute(DirectoryPollerJob.java:34)
          at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
      

      Diagnosis

      • This error happens when there are multiple mappings for User to Group to Directory for the same user due to database inconsistency.

      Resolution

      Please see the knowledge base article LDAP directory fails to synchronise with error "Error occurred while refreshing the cache for directory" which provides SQL queries to confirm and fix the inconsistencies.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bjaison BejoyA
              Votes:
              5 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: