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

getAssignedLabel in MavenModule is implemented with lazy loading

      getAssignedLabel function seems to be triggering lazy loading in MavenModule class which can then take some time to complete.

      Maybe should use getSameNodeConstraint

      https://github.com/jenkinsci/maven-plugin/blob/master/src/main/java/hudson/maven/MavenModule.java#L459

      Append by schristou

      Stack trace snippet below:

       - hudson.model.RunMap.retrieve(java.io.File) @bci=21, line=218 (Interpreted frame)
       - hudson.model.RunMap.retrieve(java.io.File) @bci=2, line=56 (Interpreted frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.load(java.io.File, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=2, line=688 (Interpreted frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.load(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=36, line=650 (Compiled frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.search(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Direction) @bci=80, line=382 (Compiled frame)
       - jenkins.model.lazy.LazyBuildMixIn$RunMixIn.getPreviousBuild() @bci=78, line=366 (Interpreted frame)
       - hudson.model.AbstractBuild.getPreviousBuild() @bci=4, line=196 (Interpreted frame)
       - hudson.model.AbstractBuild.getPreviousBuild() @bci=1, line=104 (Interpreted frame)
       - hudson.tasks.Fingerprinter$FingerprintAction.compact() @bci=14, line=352 (Interpreted frame)
       - hudson.tasks.Fingerprinter$FingerprintAction.onLoad(hudson.model.Run) @bci=6, line=341 (Interpreted frame)
       - hudson.model.Run.onLoad() @bci=41, line=342 (Compiled frame)
       - hudson.maven.MavenModuleSetBuild.onLoad() @bci=1, line=151 (Interpreted frame)
       - hudson.model.RunMap.retrieve(java.io.File) @bci=28, line=219 (Interpreted frame)
       - hudson.model.RunMap.retrieve(java.io.File) @bci=2, line=56 (Interpreted frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.load(java.io.File, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=2, line=688 (Interpreted frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.load(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=36, line=650 (Compiled frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.search(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Direction) @bci=80, line=382 (Compiled frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(int) @bci=5, line=547 (Compiled frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.search(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Direction) @bci=176, line=393 (Compiled frame)
       - jenkins.model.lazy.AbstractLazyLoadRunMap.newestBuild() @bci=6, line=335 (Compiled frame)
       - jenkins.model.lazy.LazyBuildMixIn.getLastBuild() @bci=4, line=249 (Compiled frame)
       - hudson.model.AbstractProject.getLastBuild() @bci=4, line=974 (Compiled frame)
       - hudson.model.AbstractProject.getLastBuiltOn() @bci=1, line=1038 (Compiled frame)
       - hudson.maven.MavenModule.getAssignedLabel() @bci=4, line=460 (Interpreted frame)
       - hudson.model.Label.getTiedJobCount() @bci=176, line=392 (Compiled frame)
      

          [JENKINS-26391] getAssignedLabel in MavenModule is implemented with lazy loading

          Félix Belzunce Arcos created issue -
          Steven Christou made changes -
          Component/s Original: performance-plugin [ 15803 ]
          Labels New: lazy-loading performance

          Upgrading priority to critical as something as simple as viewing the Labels build results can trigger this.

          Steven Christou added a comment - Upgrading priority to critical as something as simple as viewing the Labels build results can trigger this.
          Steven Christou made changes -
          Priority Original: Minor [ 4 ] New: Critical [ 2 ]
          Steven Christou made changes -
          Assignee Original: Félix Belzunce Arcos [ fbelzunc ] New: Steven Christou [ schristou ]
          Steven Christou made changes -
          Remote Link New: This issue links to "PR 38 (Web Link)" [ 12103 ]

          Jesse Glick added a comment -

          You should include a sample stack trace from a thread dump.

          Jesse Glick added a comment - You should include a sample stack trace from a thread dump.
          Steven Christou made changes -
          Description Original: getAssignedLabel function seems to be triggering lazy loading in MavenModule class which can then take some time to complete.

          Maybe should use getSameNodeConstraint

          https://github.com/jenkinsci/maven-plugin/blob/master/src/main/java/hudson/maven/MavenModule.java#L459
          New: getAssignedLabel function seems to be triggering lazy loading in MavenModule class which can then take some time to complete.

          Maybe should use getSameNodeConstraint

          https://github.com/jenkinsci/maven-plugin/blob/master/src/main/java/hudson/maven/MavenModule.java#L459

          Append by [~schristou]

          Stack trace snippet below:

          {noformat}
           - hudson.model.RunMap.retrieve(java.io.File) @bci=21, line=218 (Interpreted frame)
           - hudson.model.RunMap.retrieve(java.io.File) @bci=2, line=56 (Interpreted frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.load(java.io.File, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=2, line=688 (Interpreted frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.load(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=36, line=650 (Compiled frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.search(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Direction) @bci=80, line=382 (Compiled frame)
           - jenkins.model.lazy.LazyBuildMixIn$RunMixIn.getPreviousBuild() @bci=78, line=366 (Interpreted frame)
           - hudson.model.AbstractBuild.getPreviousBuild() @bci=4, line=196 (Interpreted frame)
           - hudson.model.AbstractBuild.getPreviousBuild() @bci=1, line=104 (Interpreted frame)
           - hudson.tasks.Fingerprinter$FingerprintAction.compact() @bci=14, line=352 (Interpreted frame)
           - hudson.tasks.Fingerprinter$FingerprintAction.onLoad(hudson.model.Run) @bci=6, line=341 (Interpreted frame)
           - hudson.model.Run.onLoad() @bci=41, line=342 (Compiled frame)
           - hudson.maven.MavenModuleSetBuild.onLoad() @bci=1, line=151 (Interpreted frame)
           - hudson.model.RunMap.retrieve(java.io.File) @bci=28, line=219 (Interpreted frame)
           - hudson.model.RunMap.retrieve(java.io.File) @bci=2, line=56 (Interpreted frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.load(java.io.File, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=2, line=688 (Interpreted frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.load(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Index) @bci=36, line=650 (Compiled frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.search(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Direction) @bci=80, line=382 (Compiled frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(int) @bci=5, line=547 (Compiled frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.search(int, jenkins.model.lazy.AbstractLazyLoadRunMap$Direction) @bci=176, line=393 (Compiled frame)
           - jenkins.model.lazy.AbstractLazyLoadRunMap.newestBuild() @bci=6, line=335 (Compiled frame)
           - jenkins.model.lazy.LazyBuildMixIn.getLastBuild() @bci=4, line=249 (Compiled frame)
           - hudson.model.AbstractProject.getLastBuild() @bci=4, line=974 (Compiled frame)
           - hudson.model.AbstractProject.getLastBuiltOn() @bci=1, line=1038 (Compiled frame)
           - hudson.maven.MavenModule.getAssignedLabel() @bci=4, line=460 (Interpreted frame)
           - hudson.model.Label.getTiedJobCount() @bci=176, line=392 (Compiled frame)
          {noformat}

          Jesse Glick added a comment -

          Note that the fix of JENKINS-19392 probably would have helped here too.

          Jesse Glick added a comment - Note that the fix of JENKINS-19392 probably would have helped here too.
          Jesse Glick made changes -
          Link New: This issue depends on JENKINS-19392 [ JENKINS-19392 ]

            schristou Steven Christou
            fbelzunc Félix Belzunce Arcos
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: