com.atlassian.crowd.exception.OperationFailedException: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users]

Atlassian JIRA | Danilo Conrad | 2 years ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    h3. Summary The incremental Synchronization with Crowd fails under the following conditions: * Crowd is connected to an External Directory (Connector). * The user has logged into JIRA at least once and synchronized default group memberships. * The user is renamed in the external directory. h3. Environment * JIRA 6.4.11 * Crowd 2.8.3 * Win2k8 R2 Active Directory h3. Steps to Reproduce # Create the user {{jsmith}} on AD. # Connect Crowd 2.8.3 to AD (connector). # Configure {{Default group memberships}} on Crowd to a group with access to JIRA (e.g. {{jira-users}} or {{jira-core-users}}). # Connect JIRA to Crowd with incremental synchronization enabled. # Perform a full synchronization on Crowd and then JIRA - The user {{jsmith}} will be visible on JIRA. # Login to JIRA as {{jsmith}} - The group memberships will be synchronized and {{jsmith}} will be added to the group configured on Crowd's {{Default group memberships}}. # Rename the user on AD (e.g. to {{john.smith}}). # Synchronize the directory on Crowd - The username will change to {{john.smith}}. # Synchronize the Crowd directory on JIRA. h3. Expected Results The username should be updated to {{john.smith}} during the incremental synchronization. h3. Actual Results The incremental synchronization fails and the following exception is thrown: {noformat} 2015-09-28 15:08:28,139 atlassian-scheduler-quartz1.clustered_Worker-2 ERROR anonymous 681x28x1 1mlipxo 192.168.10.174 /secure/SetupLicense.jspa [com.atlassian.scheduler.JobRunnerResponse] Unable to synchronise directory com.atlassian.crowd.exception.OperationFailedException: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users] at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addUserToGroup(DbCachingRemoteChangeOperations.java:1336) at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.addUserToGroup(DirectoryCacheImplUsingChangeOperations.java:189) at com.atlassian.crowd.directory.ldap.cache.EventTokenChangedCacheRefresher.synchroniseChanges(EventTokenChangedCacheRefresher.java:168) at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1097) at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76) at com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.synchronizeDirectory(JiraDirectorySynchroniser.java:96) at com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.runJob(JiraDirectorySynchroniser.java:60) at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:136) at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:101) at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:80) at com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32) at org.quartz.core.JobRunShell.run(JobRunShell.java:223) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) Caused by: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users] at com.atlassian.jira.crowd.embedded.ofbiz.OfBizInternalMembershipDao.addUserToGroup(OfBizInternalMembershipDao.java:101) at com.atlassian.jira.crowd.embedded.ofbiz.OfBizDelegatingMembershipDao.addUserToGroup(OfBizDelegatingMembershipDao.java:109) at com.atlassian.crowd.directory.AbstractInternalDirectory.addUserToGroup(AbstractInternalDirectory.java:911) at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addUserToGroup(DbCachingRemoteChangeOperations.java:1314) ... 12 more {noformat} h3.Workaround Once the incremental synchronization fails, JIRA will fallback to the full synchronization, which will rename the user successfully.

    Atlassian JIRA | 2 years ago | Danilo Conrad [Atlassian]
    com.atlassian.crowd.exception.OperationFailedException: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users]
  2. 0

    h3. Summary The incremental Synchronization with Crowd fails under the following conditions: * Crowd is connected to an External Directory (Connector). * The user has logged into JIRA at least once and synchronized default group memberships. * The user is renamed in the external directory. h3. Environment * JIRA 6.4.11 * Crowd 2.8.3 * Win2k8 R2 Active Directory h3. Steps to Reproduce # Create the user {{jsmith}} on AD. # Connect Crowd 2.8.3 to AD (connector). # Configure {{Default group memberships}} on Crowd to a group with access to JIRA (e.g. {{jira-users}} or {{jira-core-users}}). # Connect JIRA to Crowd with incremental synchronization enabled. # Perform a full synchronization on Crowd and then JIRA - The user {{jsmith}} will be visible on JIRA. # Login to JIRA as {{jsmith}} - The group memberships will be synchronized and {{jsmith}} will be added to the group configured on Crowd's {{Default group memberships}}. # Rename the user on AD (e.g. to {{john.smith}}). # Synchronize the directory on Crowd - The username will change to {{john.smith}}. # Synchronize the Crowd directory on JIRA. h3. Expected Results The username should be updated to {{john.smith}} during the incremental synchronization. h3. Actual Results The incremental synchronization fails and the following exception is thrown: {noformat} 2015-09-28 15:08:28,139 atlassian-scheduler-quartz1.clustered_Worker-2 ERROR anonymous 681x28x1 1mlipxo 192.168.10.174 /secure/SetupLicense.jspa [com.atlassian.scheduler.JobRunnerResponse] Unable to synchronise directory com.atlassian.crowd.exception.OperationFailedException: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users] at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addUserToGroup(DbCachingRemoteChangeOperations.java:1336) at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.addUserToGroup(DirectoryCacheImplUsingChangeOperations.java:189) at com.atlassian.crowd.directory.ldap.cache.EventTokenChangedCacheRefresher.synchroniseChanges(EventTokenChangedCacheRefresher.java:168) at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1097) at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76) at com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.synchronizeDirectory(JiraDirectorySynchroniser.java:96) at com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.runJob(JiraDirectorySynchroniser.java:60) at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:136) at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:101) at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:80) at com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32) at org.quartz.core.JobRunShell.run(JobRunShell.java:223) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) Caused by: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users] at com.atlassian.jira.crowd.embedded.ofbiz.OfBizInternalMembershipDao.addUserToGroup(OfBizInternalMembershipDao.java:101) at com.atlassian.jira.crowd.embedded.ofbiz.OfBizDelegatingMembershipDao.addUserToGroup(OfBizDelegatingMembershipDao.java:109) at com.atlassian.crowd.directory.AbstractInternalDirectory.addUserToGroup(AbstractInternalDirectory.java:911) at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addUserToGroup(DbCachingRemoteChangeOperations.java:1314) ... 12 more {noformat} h3.Workaround Once the incremental synchronization fails, JIRA will fallback to the full synchronization, which will rename the user successfully.

    Atlassian JIRA | 2 years ago | Danilo Conrad
    com.atlassian.crowd.exception.OperationFailedException: com.atlassian.crowd.exception.MembershipAlreadyExistsException: Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users]

    Root Cause Analysis

    1. com.atlassian.crowd.exception.MembershipAlreadyExistsException

      Membership already exists in directory [10002] from child entity [jsmith] to parent entity [jira-users]

      at com.atlassian.jira.crowd.embedded.ofbiz.OfBizInternalMembershipDao.addUserToGroup()
    2. com.atlassian.jira
      OfBizDelegatingMembershipDao.addUserToGroup
      1. com.atlassian.jira.crowd.embedded.ofbiz.OfBizInternalMembershipDao.addUserToGroup(OfBizInternalMembershipDao.java:101)
      2. com.atlassian.jira.crowd.embedded.ofbiz.OfBizDelegatingMembershipDao.addUserToGroup(OfBizDelegatingMembershipDao.java:109)
      2 frames
    3. com.atlassian.crowd
      DirectorySynchroniserImpl.synchronise
      1. com.atlassian.crowd.directory.AbstractInternalDirectory.addUserToGroup(AbstractInternalDirectory.java:911)
      2. com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addUserToGroup(DbCachingRemoteChangeOperations.java:1314)
      3. com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.addUserToGroup(DirectoryCacheImplUsingChangeOperations.java:189)
      4. com.atlassian.crowd.directory.ldap.cache.EventTokenChangedCacheRefresher.synchroniseChanges(EventTokenChangedCacheRefresher.java:168)
      5. com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1097)
      6. com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76)
      6 frames
    4. com.atlassian.jira
      JiraDirectorySynchroniser.runJob
      1. com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.synchronizeDirectory(JiraDirectorySynchroniser.java:96)
      2. com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.runJob(JiraDirectorySynchroniser.java:60)
      2 frames
    5. com.atlassian.scheduler
      Quartz1Job.execute
      1. com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:136)
      2. com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:101)
      3. com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:80)
      4. com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32)
      4 frames
    6. quartz
      SimpleThreadPool$WorkerThread.run
      1. org.quartz.core.JobRunShell.run(JobRunShell.java:223)
      2. org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
      2 frames