Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-5308

Local group with same name breaks incremental sync

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Low Low
    • 3.4.0, 3.2.7, 3.3.4
    • 3.2.6
    • None
    • None

      If the local group is created and then the group with same name is created in LDAP then incremental synchronisation will be broken.

      The reason:

      • Local group is never updated from remote LDAP. So the first incremental sync will ignore remote group.
      • Incremental sync asks for missing GUIDs, then asks for delta. All missing GUIDs have to appear in delta. Since the GUID was in the delta of the previous run, it won't appear in the current delta, and the sync will fail.
      • The process will fall back to full sync. Again the remote group will be fetched, but won't be updated locally.
      • The next incremental run will fail again.

       

      Stack trace below. Please note that log message "Problems while looking up users" is misleading - it's code copy-paste and it should say "groups" not "users".

      com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresherIncSyncException: Problems while looking up users by objectGUID in ActiveDirectory detected, falling back to a full sync.com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresherIncSyncException: Problems while looking up users by objectGUID in ActiveDirectory detected, falling back to a full sync. at com.atlassian.crowd.directory.synchronisation.cache.UsnChangedCacheRefresher.lambda$synchroniseGroupChanges$4(UsnChangedCacheRefresher.java:451) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.atlassian.crowd.directory.synchronisation.cache.UsnChangedCacheRefresher.synchroniseGroupChanges(UsnChangedCacheRefresher.java:458) at com.atlassian.crowd.directory.synchronisation.cache.UsnChangedCacheRefresher.synchroniseChanges(UsnChangedCacheRefresher.java:111) at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1006) at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.lambda$synchronise$0(DirectorySynchroniserImpl.java:80) at com.atlassian.crowd.audit.AuditLogContextInternalImpl.withAuditLogSource(AuditLogContextInternalImpl.java:52) at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:78) 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:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) 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:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy69.synchronise(Unknown Source) at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:45) at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobRunner.runJob(DirectoryPollerJobRunner.java:85) 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.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:443) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:438) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(CaesiumSchedulerService.java:462) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:390) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:285) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:282) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:65) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:59) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:34) at java.lang.Thread.run(Thread.java:748)

            [CWD-5308] Local group with same name breaks incremental sync

            Alexey Chystoprudov made changes -
            Link New: This issue is related to BAM-20534 [ BAM-20534 ]
            Marcin Kempa made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 449712 ]
            Monique Khairuliana (Inactive) made changes -
            Epic Link Original: CWD-4701 [ 598559 ]
            Monique Khairuliana (Inactive) made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 - restricted [ 3071796 ] New: JAC Bug Workflow v3 [ 3366048 ]
            Status Original: Resolved [ 5 ] New: Closed [ 6 ]
            Patryk made changes -
            Fix Version/s New: 3.3.4 [ 84697 ]
            Fix Version/s New: 3.2.7 [ 82502 ]
            Pawel Gruszczynski (Inactive) made changes -
            Fix Version/s New: 3.4.0 [ 82291 ]
            Resolution New: Fixed [ 1 ]
            Status Original: In Progress [ 3 ] New: Resolved [ 5 ]
            Pawel Gruszczynski (Inactive) made changes -
            Status Original: Verified [ 10005 ] New: In Progress [ 3 ]
            Mareusz (Inactive) made changes -
            Status Original: In Progress [ 3 ] New: Verified [ 10005 ]
            Mareusz (Inactive) made changes -
            Status Original: Verified [ 10005 ] New: In Progress [ 3 ]
            Mareusz (Inactive) made changes -
            Epic Link New: CWD-4701 [ 598559 ]

              pgruszczynski Pawel Gruszczynski (Inactive)
              pgruszczynski Pawel Gruszczynski (Inactive)
              Affected customers:
              1 This affects my team
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: