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

Checkstyle report collector uses a lot of time comparing with older build

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • checkstyle-plugin
    • None
    • Solaris,Glassfish v2, Hudson 1.366, Checkstyle plugin 3.0

      I have a big build with alot of checkstyle errors approx 70k.

      I see a big difference in the time the 1. build with checkstyle collector enabled and the second one even though nothing has changed (I mearly started the second build to generate trend graphs)

      1. build: 1 hour 50 minutes
      2. build: 2 hours 16 minutes

      It appears to hang between the last file parsed and the summary being printed:
      [CHECKSTYLE] Successfully parsed file XXX/target/checkstyle-result.xml of module Util: Test Classes with 291 warnings.
      .... Hangs here ....
      [CHECKSTYLE] Found 72184 annotations (243 new, 72184 high, 0 normal, 0 low)

      In the time it was hanging I did two thread dumps:
      Executor #1 for master:
      at java.lang.String.equals(String.java:858)
      at hudson.plugins.analysis.util.model.AbstractAnnotation.equals(AbstractAnnotation.java:268)
      at java.util.ArrayList.indexOf(ArrayList.java:220)
      at java.util.ArrayList.contains(ArrayList.java:201)
      at java.util.Collections$UnmodifiableCollection.contains(Collections.java:1000)
      at java.util.AbstractSet.removeAll(AbstractSet.java:146)
      at hudson.plugins.analysis.core.AnnotationDifferencer.difference(AnnotationDifferencer.java:44)
      at hudson.plugins.analysis.core.AnnotationDifferencer.getNewAnnotations(AnnotationDifferencer.java:27)
      at hudson.plugins.analysis.core.BuildResult.initialize(BuildResult.java:207)
      at hudson.plugins.analysis.core.BuildResult.<init>(BuildResult.java:154)
      at hudson.plugins.checkstyle.CheckStyleResult.<init>(CheckStyleResult.java:50)
      at hudson.plugins.checkstyle.CheckStyleResultBuilder.build(CheckStyleResultBuilder.java:31)
      at hudson.plugins.checkstyle.CheckStylePublisher.perform(CheckStylePublisher.java:104)
      at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:140)
      at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:577)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:563)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:551)
      at hudson.model.Build$RunnerImpl.post2(Build.java:152)
      at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:535)
      at hudson.model.Run.run(Run.java:1199)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:123)

      Executor #1 for master:
      at java.lang.String.equals(String.java:858)
      at hudson.plugins.analysis.util.model.AbstractAnnotation.equals(AbstractAnnotation.java:268)
      at java.util.ArrayList.indexOf(ArrayList.java:220)
      at java.util.ArrayList.contains(ArrayList.java:201)
      at java.util.Collections$UnmodifiableCollection.contains(Collections.java:1000)
      at java.util.AbstractSet.removeAll(AbstractSet.java:146)
      at hudson.plugins.analysis.core.AnnotationDifferencer.difference(AnnotationDifferencer.java:44)
      at hudson.plugins.analysis.core.AnnotationDifferencer.getNewAnnotations(AnnotationDifferencer.java:27)
      at hudson.plugins.analysis.core.BuildResult.initialize(BuildResult.java:207)
      at hudson.plugins.analysis.core.BuildResult.<init>(BuildResult.java:154)
      at hudson.plugins.checkstyle.CheckStyleResult.<init>(CheckStyleResult.java:50)
      at hudson.plugins.checkstyle.CheckStyleResultBuilder.build(CheckStyleResultBuilder.java:31)
      at hudson.plugins.checkstyle.CheckStylePublisher.perform(CheckStylePublisher.java:104)
      at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:140)
      at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:577)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:563)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:551)
      at hudson.model.Build$RunnerImpl.post2(Build.java:152)
      at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:535)
      at hudson.model.Run.run(Run.java:1199)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:123)

          [JENKINS-5330] Checkstyle report collector uses a lot of time comparing with older build

          There are no comments yet on this issue.

            drulli Ulli Hafner
            lynggaard lynggaard
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: