Synchronization to AD directory fails intermittently or is taking a much longer time to finish after upgrading to Crowd 2.8

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Medium
    • 2.11.0
    • Affects Version/s: 2.8
    • Component/s: None
    • None
    • Severity 2 - Major

      Steps to Reproduce

      1. Upgrade a CROWD instance to 2.8 where it has an AD directory configured.
      2. After the upgrade, try "Synchronise" CROWD with AD
      3. Most of the times Sync times out and fail with the following error:
        2014-12-29 11:18:50,295 scheduler_Worker-4 ERROR [atlassian.crowd.directory.DbCachingDirectoryPoller] Error occurred while refreshing the cache for directory [ 32770 ].
        com.atlassian.crowd.exception.OperationFailedException: Error looking up attributes for highestCommittedUSN
          at com.atlassian.crowd.directory.MicrosoftActiveDirectory.fetchHighestCommittedUSN(MicrosoftActiveDirectory.java:807)
          at com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresher.synchroniseChanges(UsnChangedCacheRefresher.java:115)
          at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1095)
          at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:76)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        ...
        Caused by: org.springframework.ldap.UncategorizedLdapException: Uncategorized exception occured during LDAP processing; nested exception is javax.naming.NamingException: LDAP response read timed out, timeout used:129000ms.; remaining name '/'
          at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:228)
          at org.springframework.ldap.core.LdapTemplate.executeWithContext(LdapTemplate.java:820)
          at org.springframework.ldap.core.LdapTemplate.executeReadOnly(LdapTemplate.java:803)
          at org.springframework.ldap.core.LdapTemplate.lookup(LdapTemplate.java:832)
          at com.atlassian.crowd.directory.ldap.SpringLdapTemplateWrapper$3.timedCall(SpringLdapTemplateWrapper.java:179)
          at com.atlassian.crowd.directory.ldap.SpringLdapTemplateWrapper$TimedCallable.call(SpringLdapTemplateWrapper.java:124)
          at com.atlassian.crowd.directory.ldap.SpringLdapTemplateWrapper.invokeWithContextClassLoader(SpringLdapTemplateWrapper.java:87)
          at com.atlassian.crowd.directory.ldap.SpringLdapTemplateWrapper.lookup(SpringLdapTemplateWrapper.java:176)
          at com.atlassian.crowd.directory.MicrosoftActiveDirectory.fetchHighestCommittedUSN(MicrosoftActiveDirectory.java:783)
          ... 24 more
        Caused by: javax.naming.NamingException: LDAP response read timed out, timeout used:129000ms.; remaining name '/'
          at com.sun.jndi.ldap.Connection.readReply(Connection.java:483)
          at com.sun.jndi.ldap.LdapClient.getSearchReply(LdapClient.java:639)
          at com.sun.jndi.ldap.LdapClient.search(LdapClient.java:562)
          at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1985)
          at com.sun.jndi.ldap.LdapCtx.doSearchOnce(LdapCtx.java:1934)
          at com.sun.jndi.ldap.LdapCtx.c_lookup(LdapCtx.java:1028)
          at com.sun.jndi.toolkit.ctx.ComponentContext.p_lookup(ComponentContext.java:544)
          at com.sun.jndi.toolkit.ctx.PartialCompositeContext.lookup(PartialCompositeContext.java:177)
          at javax.naming.InitialContext.lookup(InitialContext.java:415)
          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:606)
          at org.springframework.ldap.transaction.compensating.manager.TransactionAwareDirContextInvocationHandler.invoke(TransactionAwareDirContextInvocationHandler.java:90)
          at com.sun.proxy.$Proxy383.lookup(Unknown Source)
          at org.springframework.ldap.core.LdapTemplate$9.executeWithContext(LdapTemplate.java:834)
          at org.springframework.ldap.core.LdapTemplate.executeWithContext(LdapTemplate.java:817)
          ... 31 more
        

        Sync works fine on older versions of CROWD.

      Possible Workaround:

      Setting "Read timeout" in "Connector" tab to 0. This will disable the timeout, but it might result in Sync taking longer to finish.

            Assignee:
            Patryk
            Reporter:
            HosseinA
            Votes:
            8 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated:
              Resolved: