Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-3787

When synchronizing users with Crowd, do not deactivate users if the error is a communication problem

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: 2.7.0
    • Fix Version/s: 2.7.6
    • Component/s: User Auth
    • Labels:

      Description

      During the user synchronisation, if there is any error while communicating with Crowd, an exception is thrown by the REST client. When that happens, it is interpreted as "Can't Authenticate", which means we return a null authToken, and remove the user from the user database.

      Instead, we should just skip the user (don't make changes to their entry on the FishEye side), and move on to the next one.

      1) Errors like:

      2011-10-19 20:14:57,799 INFO  [quartzScheduler_Worker-0 ] fisheye.app UserSynchroniserJob-execute - Starting resynchronising users
      2011-10-19 20:14:58,532 INFO  [quartzScheduler_Worker-0 ] fisheye.app DefaultUserManager-synchroniseUsers - resynchronising users with crowd
      2011-10-19 20:14:59,269 ERROR [quartzScheduler_Worker-0 ] fisheye.app CrowdAuth-canAuthenticate - Unexpected exception when retrieving token for user 'USER_NAME'
      com.atlassian.crowd.exception.OperationFailedException
      	at com.atlassian.crowd.integration.rest.service.RestCrowdClient.handleCommonExceptions(RestCrowdClient.java:1084)
      	at com.atlassian.crowd.integration.rest.service.RestCrowdClient.authenticateSSOUserWithoutValidatingPassword(RestCrowdClient.java:830)
      	at com.cenqua.fisheye.user.crowd.CrowdAuth.canAuthenticate(CrowdAuth.java:278)
      	at com.cenqua.fisheye.user.crowd.CrowdAuth.access$500(CrowdAuth.java:54)
      	at com.cenqua.fisheye.user.crowd.CrowdAuth$3.call(CrowdAuth.java:241)
      	at com.cenqua.fisheye.user.crowd.CrowdAuth$3.call(CrowdAuth.java:235)
      	at com.cenqua.fisheye.user.crowd.CrowdAuth.withTimer(CrowdAuth.java:92)
      	at com.cenqua.fisheye.user.crowd.CrowdAuth.recreateAuth(CrowdAuth.java:235)
      	at com.cenqua.fisheye.user.DefaultUserManager.synchroniseUsers(DefaultUserManager.java:631)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      	at com.googlecode.ehcache.annotations.interceptor.EhCacheInterceptor.invokeTriggersRemove(EhCacheInterceptor.java:191)
      	at com.googlecode.ehcache.annotations.interceptor.EhCacheInterceptor.invoke(EhCacheInterceptor.java:90)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      	at $Proxy25.synchroniseUsers(Unknown Source)
      	at com.cenqua.fisheye.user.UserSynchroniserJob.execute(UserSynchroniserJob.java:30)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
      

      Once the error is fixed, in the next round of synchronization, if the exception goes away, we create a new, different user, which makes the original problem even harder to fix.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                1 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Last commented:
                  6 years, 12 weeks, 1 day ago

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - Not Specified
                  Not Specified
                  Logged:
                  Time Spent - 0.45h
                  0.45h