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

Emailing users at the end of a failed build very slow for big Jenkins instance using CVS

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • cvs-plugin
    • Jenkins 1.447 LTS

      Basically the same issue as JENKINS-15440, only for CVS.
      Description was mainly copied from there.

      At the end of a failing build, the hudson.tasks.MailSender.buildCulpritList determines who to email.
      The problem comes when hudson.scm.MailAddressResolverImpl.findMailAddressFor determines the email address of the user by finding all builds a user has committed to. This is done by iterating over every single Jenkins project (hudson.model.User.getProjects() first finds all projects and then uses AbstractProject.hasParticipant - which reads the changelog to see if the user participated).

      For a large system (we have tens of thousands of builds), this is not at all efficient.

      Unfortunately findMailAddressFor takes a user and not a project (as the obvious implementation would be to work out the email address from the commit).

      Also, the results aren't cached and so this is run for every user every time.

          [JENKINS-16389] Emailing users at the end of a failed build very slow for big Jenkins instance using CVS

          kutzi created issue -
          kutzi made changes -
          Component/s New: cvs [ 15486 ]
          Component/s Original: subversion [ 15485 ]
          Environment Original: Jenkins 1.447 LTS
          Subversion 1.35
          Although both Jenkins and subversion plugin are not latest version, I have browsed github for latest versions and I believe this issue to still be present.
          New: Jenkins 1.447 LTS
          kutzi made changes -
          Description Original: At the end of a failing build, the hudson.tasks.MailSender.buildCulpritList determines who to email.
          The problem comes when hudson.scm.SubversionMailAddressResolverImpl.findMailAddressFor determines the email address of the user by finding all builds a user has committed to. This is done by iterating over every single Jenkins project (hudson.model.User.getProjects() first finds all projects and then uses AbstractProject.hasParticipant - which reads the changelog to see if the user participated).

          For a large system (we have tens of thousands of builds), this is not at all efficient.

          Unfortunately findMailAddressFor takes a user and not a project (as the obvious implementation would be to work out the email address from the commit).

          Also, the results aren't cached and so this is run for every user every time.

          I'm not sure if this can be resolved with just a fix to the subversion-plugin
          New: At the end of a failing build, the hudson.tasks.MailSender.buildCulpritList determines who to email.
          The problem comes when hudson.scm.MailAddressResolverImpl.findMailAddressFor determines the email address of the user by finding all builds a user has committed to. This is done by iterating over every single Jenkins project (hudson.model.User.getProjects() first finds all projects and then uses AbstractProject.hasParticipant - which reads the changelog to see if the user participated).

          For a large system (we have tens of thousands of builds), this is not at all efficient.

          Unfortunately findMailAddressFor takes a user and not a project (as the obvious implementation would be to work out the email address from the commit).

          Also, the results aren't cached and so this is run for every user every time.

          I'm not sure if this can be resolved with just a fix to the subversion-plugin
          kutzi made changes -
          Link New: This issue is related to JENKINS-15440 [ JENKINS-15440 ]
          kutzi made changes -
          Description Original: At the end of a failing build, the hudson.tasks.MailSender.buildCulpritList determines who to email.
          The problem comes when hudson.scm.MailAddressResolverImpl.findMailAddressFor determines the email address of the user by finding all builds a user has committed to. This is done by iterating over every single Jenkins project (hudson.model.User.getProjects() first finds all projects and then uses AbstractProject.hasParticipant - which reads the changelog to see if the user participated).

          For a large system (we have tens of thousands of builds), this is not at all efficient.

          Unfortunately findMailAddressFor takes a user and not a project (as the obvious implementation would be to work out the email address from the commit).

          Also, the results aren't cached and so this is run for every user every time.

          I'm not sure if this can be resolved with just a fix to the subversion-plugin
          New: Basically the same issue as JENKINS-15440, only for CVS.
          Description was mainly copied from there.

          At the end of a failing build, the hudson.tasks.MailSender.buildCulpritList determines who to email.
          The problem comes when hudson.scm.MailAddressResolverImpl.findMailAddressFor determines the email address of the user by finding all builds a user has committed to. This is done by iterating over every single Jenkins project (hudson.model.User.getProjects() first finds all projects and then uses AbstractProject.hasParticipant - which reads the changelog to see if the user participated).

          For a large system (we have tens of thousands of builds), this is not at all efficient.

          Unfortunately findMailAddressFor takes a user and not a project (as the obvious implementation would be to work out the email address from the commit).

          Also, the results aren't cached and so this is run for every user every time.
          kutzi made changes -
          Assignee Original: kutzi [ kutzi ]
          Jesse Glick made changes -
          Link New: This issue is blocking JENKINS-16437 [ JENKINS-16437 ]
          Oliver Gondža made changes -
          Assignee New: Oliver Gondža [ olivergondza ]
          Oliver Gondža made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          kutzi made changes -
          Link New: This issue is blocking JENKINS-16849 [ JENKINS-16849 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 147207 ] New: JNJira + In-Review [ 192281 ]

            olivergondza Oliver Gondža
            kutzi kutzi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: