Crowd will only synchronise initially


アトラシアン コミュニティをご利用ください。




Renaming a user in an external directory will correctly synchronize and update Crowd but the subsequent synchronization to Fisheye/Crucible creates a new user instead of updating the original.

The following appears in the atlassian-fisheye-yyyy-mm-dd.log:

2017-01-04 07:05:56,932 ERROR [schedulerServiceQuartzScheduler_Worker-9 ] DbCachingDirectoryPoller-pollChanges - Error occurred while refreshing the cache for directory [ 2 ].
java.lang.IllegalArgumentException: Multiple entries with same key: 32770:85d635085347d5478a420f68e574fa87=com.atlassian.crowd.model.user.InternalUser@4d1d5900[id=24,name=bstuart,createdDate=2016-12-24 06:32:01.0,updatedDate=2016-12-24 06:32:01.0,active=true,,firstName=Paige,lastName=bstuart,displayName=ben Pfleger,credential=com.atlassian.crowd.embedded.api.PasswordCredential@7137be5e[credential=********,encryptedCredential=true],lowerName=bstuart,,lowerFirstName=ben,lowerLastName=bstuart,lowerDisplayName=ben bstuart,directoryId=2,externalId=32770:85d635085347d5478a420f68e574fa87] and 32770:85d635085347d5478a420f68e574fa87=com.atlassian.crowd.model.user.InternalUser@2323452f[id=935,name=bstuart,createdDate=2016-12-24 06:32:01.0,updatedDate=2016-12-24 06:32:01.0,active=true,,firstName=ben,lastName=Southwick bstuart,displayName=Ben Stuart Pflege,credential=com.atlassian.crowd.embedded.api.PasswordCredential@7e324893[credential=********,encryptedCredential=true],lowerName=bstuart,,lowerFirstName=ben,lowerLastName=stuart bstuart,lowerDisplayName=ben bstuart,directoryId=2,externalId=32770:85d635085347d5478a420f68e574fa87]

原因 1

FE-6432 - 課題詳細を取得中... ステータス

原因 2

The external directory in Crowd is configured so that auto update user is set to "false". 

This means that every time user update happens on the LDAP side, Crowd creates a new user instead of updating existing one.

ソリューション 1

See workaround in the above bug report. 

ソリューション 2

Change the auto update user setting to true and removing all duplicate users in Crowd (via Users page). Duplicates are "old" versions of users which do not exists on LDAP anymore but are stuck in Crowd. You may run a DB query to get all duplicates of external_id and use that data to remove "old" versions of users:

SELECT * FROM cwd_user WHERE external_id in  (SELECT external_id FROM cwd_user GROUP BY external_id HAVING COUNT(*) > 1);

Once only the most recent versions of the users exist in Crowd, the directory should synchronise once again.

最終更新日 2018 年 7 月 31 日


Powered by Confluence and Scroll Viewport.