Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-6628

Subsequent FULL synchronisation may take long time when there's many users+groups to sync

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Medium
    • None
    • 4.0.0
    • User management
    • None

    Description

      Summary

      User synchronization takes longer than expected.
      This happens mostly during group / group membership synchronisation.

      Steps to Reproduce

      1. Synchronize users in FishEye

      Expected Results

      The synchronization takes a reasonable amount of time.

      Actual Results

      The synchronization takes a long time.

      The following threads can be found as active:

      "schedulerServiceQuartzScheduler_Worker-4" #49 prio=5 os_prio=31 tid=0x00007f9f6c41e000 nid=0x9c03 runnable [0x000070000393c000]
         java.lang.Thread.State: RUNNABLE
              at org.hibernate.event.internal.AbstractFlushingEventListener.flushCollections(AbstractFlushingEventListener.java:306)
              at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:101)
              at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
              at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1130)
              at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1580)
              at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
              at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:396)
              at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByNameInternal(GroupDAOHibernate.java:166)
              at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByName(GroupDAOHibernate.java:155)
              at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByName(GroupDAOHibernate.java:46)
              at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupByName(AbstractInternalDirectory.java:788)
              at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.ignoreGroupOnSynchroniseMemberships(DbCachingRemoteChangeOperations.java:1079)
              at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.syncUserMembersForGroup(DirectoryCacheImplUsingChangeOperations.java:111)
              at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseMemberships(AbstractCacheRefresher.java:212)
              at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:98)
              at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1122)
              at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:497)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
              at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
              at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
              at com.sun.proxy.$Proxy50.synchronise(Unknown Source)
              at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)
              at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobRunner.runJob(DirectoryPollerJobRunner.java:93)
              at com.atlassian.fecru.scheduler.FeCruSchedulerService$SessionTerminatingJobRunner.runJob(FeCruSchedulerService.java:71)
              at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:153)
              at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:118)
              at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:97)
              at com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32)
              at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
      
      schedulerServiceQuartzScheduler_Worker-4" #48 prio=5 os_prio=31 tid=0x00007fcce9a2f800 nid=0x9a03 runnable [0x0000700003839000]
         java.lang.Thread.State: RUNNABLE
              at org.hibernate.engine.spi.CollectionEntry.preFlush(CollectionEntry.java:190)
              at org.hibernate.event.internal.AbstractFlushingEventListener.prepareCollectionFlushes(AbstractFlushingEventListener.java:192)
              at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:93)
              at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
              at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1130)
              at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1580)
              at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
              at com.atlassian.crowd.dao.group.GroupDAOHibernate.findGroupAttributes(GroupDAOHibernate.java:191)
              at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByNameWithAttributes(GroupDAOHibernate.java:176)
              at com.atlassian.crowd.dao.group.GroupDAOHibernate.findByNameWithAttributes(GroupDAOHibernate.java:46)
              at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupWithAttributesByName(AbstractInternalDirectory.java:796)
              at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.findGroupWithAttributesByName(DbCachingRemoteChangeOperations.java:1495)
              at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.findGroupWithAttributesByName(DirectoryCacheImplUsingChangeOperations.java:232)
              at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAllGroupAttributes(AbstractCacheRefresher.java:120)
              at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:94)
              at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1122)
              at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:497)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
              at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
              at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
              at com.sun.proxy.$Proxy50.synchronise(Unknown Source)
              at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)
              at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobRunner.runJob(DirectoryPollerJobRunner.java:93)
              at com.atlassian.fecru.scheduler.FeCruSchedulerService$SessionTerminatingJobRunner.runJob(FeCruSchedulerService.java:71)
              at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:153)
              at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:118)
              at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:97)
              at com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32)
              at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
      

      Workaround

      N/A

      Attachments

        1. screenshot-1.png
          screenshot-1.png
          113 kB
        2. screenshot-2.png
          screenshot-2.png
          126 kB

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kcichy Kamil Cichy
              Votes:
              12 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated: