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

          taksan created issue -

          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
          taksan made changes -
          Description Original: 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-2487.

          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
          New: 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

          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.
          kutzi made changes -
          Link New: This issue duplicates JENKINS-15440 [ JENKINS-15440 ]
          kutzi made changes -
          Resolution New: Duplicate [ 3 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 145667 ] New: JNJira + In-Review [ 191581 ]

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

              Created:
              Updated:
              Resolved: