Directory Sync between Jira and Crowd failed after reboot docker

Rakesh Vattakottil October 26, 2016

We have Docker images for Crowd , JIRA and Confluence.

Our Host machines disk space gets full So mounted additional space and restarted Docker.

All docker Images started fine , All existing Users can able to login .

However when we create new user on crowd  it doesn't get sync with JIRA and confluence.

On JIRA we can see below logs

 

6-10-27 09:05:42,031 Caesium-1-3 INFO ServiceRunner     [c.a.crowd.directory.DbCachingRemoteDirectory] failed synchronisation complete for directory [ 10000 ] in [ 0ms ]
2016-10-27 09:05:42,046 Caesium-1-3 ERROR ServiceRunner     [c.atlassian.scheduler.JobRunnerResponse] Unable to synchronise directory
com.atlassian.crowd.exception.OperationFailedException: Failed to create remote crowd client
        at com.atlassian.crowd.directory.RemoteCrowdDirectory.getCrowdClient(RemoteCrowdDirectory.java:1005)
        at com.atlassian.crowd.directory.RemoteCrowdDirectory.searchUsers(RemoteCrowdDirectory.java:371)
        at com.atlassian.crowd.directory.ldap.cache.RemoteDirectoryCacheRefresher.findAllRemoteUsers(RemoteDirectoryCacheRefresher.java:55)
        at com.atlassian.crowd.directory.ldap.cache.RemoteDirectoryCacheRefresher.synchroniseAllUsers(RemoteDirectoryCacheRefresher.java:90)
        at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:89)
        at com.atlassian.crowd.directory.ldap.cache.EventTokenChangedCacheRefresher.synchroniseAll(EventTokenChangedCacheRefresher.java:67)
        at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1122)
        at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76)
        at com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.synchronizeDirectory(JiraDirectorySynchroniser.java:77)
        at com.atlassian.jira.crowd.embedded.JiraDirectorySynchroniser.runJob(JiraDirectorySynchroniser.java:52)
        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:453)
        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:447)
        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:394)
        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:279)
        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:275)
        at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:78)
        at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:70)
        at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:40)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
        at java.net.URI$Parser.parse(URI.java:3042)
        at java.net.URI.<init>(URI.java:588)
        at com.atlassian.crowd.integration.rest.service.RestExecutor.<init>(RestExecutor.java:94)
        at com.atlassian.crowd.integration.rest.service.RestCrowdClient.<init>(RestCrowdClient.java:88)
        at com.atlassian.crowd.integration.rest.service.factory.RestCrowdClientFactory.newInstance(RestCrowdClientFactory.java:26)
        at com.atlassian.crowd.directory.RemoteCrowdDirectory$1.create(RemoteCrowdDirectory.java:959)
        at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:325)
        at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143)
        at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
        at com.atlassian.crowd.directory.RemoteCrowdDirectory.getCrowdClient(RemoteCrowdDirectory.java:1002)
        ... 21 more

 

Further check we found that IP of crowd has been changes.

Please suggest what can be done.

1 answer

1 vote
Aleksey P March 1, 2017

I had the same error, wasn't using docker and IP didn't change tho.

I was able to fix by

  • setting "JIRA Internal Directory" as main one
  • logging in as internal user
  • disabling crowd
  • re-applying all settings (URL/etc)
  • enabling crowd
  • setting crowd as main directory again
Stefano Coletta August 17, 2018

I had the same problem and I've fixed it following your suggestions.

Just a note on the point "logging in as internal user", if you use SSO, you have to disable it in .../atlassian-jira/WEB-INF/classes/seraph-config.xml as described in Integrating Crowd with Atlassian JIRA otherwise you can't log in with internal users.

Suggest an answer

Log in or Sign up to answer