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

Incremental sync fails after authentication if default groups have been added to a remote Crowd directory or the user has been synced via authentication

      Symptoms

      The next incremental sync just after an authentication fails and produces an stacktrace in the logs:

      2013-04-12 10:21:48,053 scheduler_Worker-1 ERROR [atlassian.crowd.directory.DbCachingRemoteDirectory] Incremental synchronisation was unexpectedly interrupted, falling back to a full synchronisation
      com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [32770] from child entity [user] to parent entity [group]
      	at com.atlassian.crowd.dao.membership.MembershipDAOHibernate.addUserToGroup(MembershipDAOHibernate.java:102)
      	at com.atlassian.crowd.directory.AbstractInternalDirectory.addUserToGroup(AbstractInternalDirectory.java:712)
      	at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addUserToGroup(DbCachingRemoteChangeOperations.java:1151)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      	at com.atlassian.crowd.directory.$Proxy159.addUserToGroup(Unknown Source)
      	at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.addUserToGroup(DirectoryCacheImplUsingChangeOperations.java:189)
      	at com.atlassian.crowd.directory.ldap.cache.EventTokenChangedCacheRefresher.synchroniseChanges(EventTokenChangedCacheRefresher.java:119)
      	at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:629)
      	at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:63)
      	at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)
      

      Steps to reproduce

      1. Set up a Remote Crowd directory, configure it to automatically add users to a group on login.
      2. Sync the directory.
      3. In the remote Crowd server, create a user. Do not add him to the group.
      4. Authenticate as the new user in the client application. This causes the user and his memberships to be copied from the server. It also causes the user to be added to the default group in both the client application and the remote server.
      5. Sync the directory.

      Expected result

      Client and server are already in sync, the incremental sync should succeed without making any update.

      Actual outcome

      Incremental sync attempts to create the membership to the default group again. Since this membership already exists in the client, an exception is thrown and incremental sync fails.

            [CWD-3255] Incremental sync fails after authentication if default groups have been added to a remote Crowd directory or the user has been synced via authentication

            Monique Khairuliana (Inactive) made changes -
            Epic Link Original: CWD-4704 [ 600140 ]
            Monique Khairuliana (Inactive) made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 - restricted [ 1509157 ] New: JAC Bug Workflow v3 [ 3364827 ]
            Marek Radochonski (Inactive) made changes -
            Remote Link New: This issue links to "Page (Extranet)" [ 318423 ]
            vkharisma made changes -
            Link New: This issue is related to CONFCLOUD-39054 [ CONFCLOUD-39054 ]
            Cezary Zawadka made changes -
            Remote Link New: This issue links to "Page (Extranet)" [ 251768 ]
            Cezary Zawadka made changes -
            Remote Link New: This issue links to "Page (Extranet)" [ 251764 ]
            Grzegorz Lewandowski made changes -
            Remote Link New: This issue links to "Page (Extranet)" [ 203370 ]
            Marcin Kempa made changes -
            Remote Link New: This issue links to "Page (Extranet)" [ 190755 ]
            Owen made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 [ 1393693 ] New: Simplified Crowd Development Workflow v2 - restricted [ 1509157 ]
            Patryk made changes -
            Fix Version/s New: 2.10.0 [ 61574 ]
            Resolution New: Fixed [ 1 ]
            Status Original: In Progress [ 3 ] New: Closed [ 6 ]

              ppetrowski Patryk
              dberrueta Diego Berrueta
              Affected customers:
              8 This affects my team
              Watchers:
              20 Start watching this issue

                Created:
                Updated:
                Resolved: