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

Jobs takes forever on subversion plugin calculating culprits

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • subversion-plugin
    • None
    • Ubuntu 11.04
      4Gb Ram, CPU Intel Xeon 2.8Ghz

      Jobs are getting stuck after the build is completed "Saving fingerprints".
      We connected in debug mode and found that the real culprit is the subversion
      plugin. We found that the same bug affected the perforce plugin on issue JENKINS-12672.

      Here the stack trace for the job:

      String.compareTo(String) line: 1184
      SubversionChangeLogSet$LogEntry$2.compare(SubversionChangeLogSet$Path, SubversionChangeLogSet$Path) line: 292
      SubversionChangeLogSet$LogEntry$2.compare(Object, Object) line: 287
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1293
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1281
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1281
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1281
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1281
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1282
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1282
      Arrays.mergeSort(Object[], Object[], int, int, int, Comparator) line: 1281
      Arrays.sort(T[], Comparator<? super T>) line: 1210
      Collections.sort(List<T>, Comparator<? super T>) line: 159
      SubversionChangeLogSet$LogEntry.finish() line: 287
      SubversionChangeLogParser.parse(AbstractBuild, File) line: 72
      SubversionChangeLogParser.parse(AbstractBuild, File) line: 43
      MavenModuleSetBuild(AbstractBuild<P,R>).calcChangeSet() line: 832
      MavenModuleSetBuild(AbstractBuild<P,R>).getChangeSet() line: 806
      FilteredChangeLogSet.<init>(MavenBuild) line: 50
      MavenBuild.getChangeSet() line: 180
      MavenBuild(AbstractBuild<P,R>).hasParticipant(User) line: 359
      MavenModule(AbstractProject<P,R>).hasParticipant(User) line: 1446
      User.getProjects() line: 413
      MailAddressResolverImpl.findMailAddressFor(User) line: 21
      MailAddressResolver.resolve(User) line: 100
      Mailer$UserProperty.getAddress() line: 530
      Mailer$1(MailSender).buildCulpritList(BuildListener, Set<User>) line: 407
      Mailer$1(MailSender).createEmptyMail(AbstractBuild<?,?>, BuildListener) line: 367
      Mailer$1(MailSender).createFailureMail(AbstractBuild<?,?>, BuildListener) line: 226
      Mailer$1(MailSender).getMail(AbstractBuild<?,?>, BuildListener) line: 153
      Mailer$1(MailSender).execute(AbstractBuild<?,?>, BuildListener) line: 99
      Mailer.perform(AbstractBuild<?,?>, Launcher, BuildListener) line: 115
      BuildStepMonitor$1.perform(BuildStep, AbstractBuild, Launcher, BuildListener) line: 19
      Build$BuildExecution(AbstractBuild$AbstractBuildExecution).perform(BuildStep, BuildListener) line: 717
      Build$BuildExecution(AbstractBuild$AbstractBuildExecution).performAllBuildSteps(BuildListener, Iterable<BuildStep>, boolean) line: 692
      Build$BuildExecution.post2(BuildListener) line: 183
      Build$BuildExecution(AbstractBuild$AbstractBuildExecution).post(BuildListener) line: 639
      FreeStyleBuild(Run<JobT,RunT>).execute(Run<JobT,RunExecutio>) line: 1527

          [JENKINS-14966] Jobs takes forever on subversion plugin calculating culprits

          Code changed in jenkins
          User: takeuchi
          Path:
          src/main/java/hudson/scm/SubversionMailAddressResolverImpl.java
          http://jenkins-ci.org/commit/subversion-plugin/1fe9344144d3c95ed473a274ab40ab347c09bffa
          Log:
          JENKINS-14966 Aplying the same fix as in https://github.com/jenkinsci/perforce-plugin/commit/414cd9f0a6409b46eef58d1229953e5093daa940
          which fixed issue JENKINS-12672

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: takeuchi Path: src/main/java/hudson/scm/SubversionMailAddressResolverImpl.java http://jenkins-ci.org/commit/subversion-plugin/1fe9344144d3c95ed473a274ab40ab347c09bffa Log: JENKINS-14966 Aplying the same fix as in https://github.com/jenkinsci/perforce-plugin/commit/414cd9f0a6409b46eef58d1229953e5093daa940 which fixed issue JENKINS-12672

          Code changed in jenkins
          User: takeuchi
          Path:
          src/main/java/hudson/scm/SubversionMailAddressResolverImpl.java
          http://jenkins-ci.org/commit/subversion-plugin/b3646e48d571945465bdb33fc8163b168d892a65
          Log:
          Revert "JENKINS-14966 Aplying the same fix as in https://github.com/jenkinsci/perforce-plugin/commit/414cd9f0a6409b46eef58d1229953e5093daa940"

          Reverting due to Jesse's observation that this is done in a wrong manner.

          This reverts commit 1fe9344144d3c95ed473a274ab40ab347c09bffa.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: takeuchi Path: src/main/java/hudson/scm/SubversionMailAddressResolverImpl.java http://jenkins-ci.org/commit/subversion-plugin/b3646e48d571945465bdb33fc8163b168d892a65 Log: Revert " JENKINS-14966 Aplying the same fix as in https://github.com/jenkinsci/perforce-plugin/commit/414cd9f0a6409b46eef58d1229953e5093daa940 " Reverting due to Jesse's observation that this is done in a wrong manner. This reverts commit 1fe9344144d3c95ed473a274ab40ab347c09bffa.

          taksan added a comment -

          Well, I reverted the change and Jesse suggested a way to do that. Anyway, the current MailResolver implemented by the subversion plugin performance is unacceptable in environments where you have hundreds of jobs and users and more than 100,000 builds.

          We found a workaround for this problem, which is fill all users mails manually, to avoid letting jenkins use subversion's mail resolver.

          taksan added a comment - Well, I reverted the change and Jesse suggested a way to do that. Anyway, the current MailResolver implemented by the subversion plugin performance is unacceptable in environments where you have hundreds of jobs and users and more than 100,000 builds. We found a workaround for this problem, which is fill all users mails manually, to avoid letting jenkins use subversion's mail resolver.

            Unassigned Unassigned
            taksan taksan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: