Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-16342

asynchPeople very slow when using Gravatar & Subversion plugins

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      https://gist.github.com/4534378 shows https://jenkins.ci.cloudbees.com/job/libraries/asynchPeople/ taking an inordinate amount of time in the callback. Clearly AsynchPeople.data() cannot assume that UserAvatarResolver.resolve is quick. UserGravatarResolver sometimes blocks on an HTTP connection to a web service, though this is cached. However every time it checks Mailer.UserProperty.getAddress, which in the presence of SubversionMailAddressResolverImpl examines every build of every project in every folder in all of Jenkins. This is so inefficient we probably never want to do it, much less synchronously in an HTTP request.

      Besides People, the avatar is used in a couple of per-User pages, which is perhaps OK; but shown for every User in the HudsonPrivateSecurityRealm overview, which is definitely not OK.

        Attachments

          Issue Links

            Activity

            Hide
            vjuranek vjuranek added a comment -

            +1 to remove MailAddressResolvers or at least make them optional

            Show
            vjuranek vjuranek added a comment - +1 to remove MailAddressResolvers or at least make them optional
            Hide
            jglick Jesse Glick added a comment -

            @kutzi, @vjuranek: see JENKINS-16437.

            Show
            jglick Jesse Glick added a comment - @kutzi, @vjuranek: see JENKINS-16437 .
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Jesse Glick
            Path:
            changelog.html
            core/src/main/java/hudson/model/View.java
            http://jenkins-ci.org/commit/jenkins/bd03abbcc0078c2f250c2e3ee2c8d3c4a9d210ca
            Log:
            JENKINS-16342 Improving responsiveness of asynchPeople when Gravatar plugin is in use.
            This change does not necessarily improve total performance, since the avatar is still computed.
            But (1) the computation is correctly done in the work thread, not in the HTTP response thread;
            (2) the computation is done just once for a given User, which could reduce load when many AJAX checks are done.(cherry picked from commit c757e65431ad1aec9a3bebe81ac919577e51ac58)

            Conflicts:
            changelog.html

            Compare: https://github.com/jenkinsci/jenkins/compare/cb6f200e8663...bd03abbcc007

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/model/View.java http://jenkins-ci.org/commit/jenkins/bd03abbcc0078c2f250c2e3ee2c8d3c4a9d210ca Log: JENKINS-16342 Improving responsiveness of asynchPeople when Gravatar plugin is in use. This change does not necessarily improve total performance, since the avatar is still computed. But (1) the computation is correctly done in the work thread, not in the HTTP response thread; (2) the computation is done just once for a given User, which could reduce load when many AJAX checks are done.(cherry picked from commit c757e65431ad1aec9a3bebe81ac919577e51ac58) Conflicts: changelog.html Compare: https://github.com/jenkinsci/jenkins/compare/cb6f200e8663...bd03abbcc007
            Hide
            kutzi kutzi added a comment -

            Now that JENKINS-15440 is fixed, I think this can be closed, too.

            Show
            kutzi kutzi added a comment - Now that JENKINS-15440 is fixed, I think this can be closed, too.
            Hide
            jglick Jesse Glick added a comment -

            @kutzi I think there is still work to be done in making UserGravatarResolver nonblocking (independently of MailAddressResolver) and/or making various UI elements displaying avatars not block rendering on the result. But these things do not need to be tracked in this issue I suppose.

            Show
            jglick Jesse Glick added a comment - @kutzi I think there is still work to be done in making UserGravatarResolver nonblocking (independently of MailAddressResolver ) and/or making various UI elements displaying avatars not block rendering on the result. But these things do not need to be tracked in this issue I suppose.

              People

              Assignee:
              jglick Jesse Glick
              Reporter:
              jglick Jesse Glick
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: