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

/{view,computer,user}/*/builds & /job/*/buildTimeTrend block HTTP response on build record loading

      Computer/builds.jelly calls Computer.getBuilds which first looks up all Job instances—probably not too expensive—then creates a merged RunList from them—again OK, as this is lazy—then calls the node(Node) filter. The filter is incremental, but if most builds were not on this computer, it would load many more than the limit of 50 in t:buildListTable before it finds some to display.

      Trimming the merged list before filtering would solve that problem (making this perform much like View/builds.jelly), but then you might not see anywhere near 50 builds, or indeed any at all, even when there are some (older) builds run on this computer.

      User/builds.jelly calls User.getBuilds which does not even bother using an incremental filter. It does use newBuilds to limit how many builds are considered per job, but then scans all of those at once for mentions of the current user.

      Ideally all such displays would show all applicable builds, but use ProgressiveRendering so that build records are only loaded in a background thread and only so long as you keep the page open. (Compare AsynchPeople.)

          [JENKINS-20892] /{view,computer,user}/*/builds & /job/*/buildTimeTrend block HTTP response on build record loading

          Code changed in jenkins
          User: Jesse Glick
          Path:
          changelog.html
          core/src/main/java/hudson/util/RunList.java
          http://jenkins-ci.org/commit/jenkins/9679a6123ed30cb70e4d6e4b389f14d04746b995
          Log:
          JENKINS-20892 Noting merge of #1046.

          Compare: https://github.com/jenkinsci/jenkins/compare/0c2b72269925...9679a6123ed3

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/util/RunList.java http://jenkins-ci.org/commit/jenkins/9679a6123ed30cb70e4d6e4b389f14d04746b995 Log: JENKINS-20892 Noting merge of #1046. Compare: https://github.com/jenkinsci/jenkins/compare/0c2b72269925...9679a6123ed3

          dogfood added a comment -

          Integrated in jenkins_main_trunk #3106
          JENKINS-20892 Partial fix of poor scalability in /builds and related displays. (Revision c5e23739fa85a6fe93ad90a35da4051a2767c874)
          JENKINS-20892 Noting merge of #1046. (Revision 9679a6123ed30cb70e4d6e4b389f14d04746b995)

          Result = SUCCESS
          Jesse Glick : c5e23739fa85a6fe93ad90a35da4051a2767c874
          Files :

          • core/src/main/java/hudson/Functions.java
          • core/src/main/java/hudson/model/BuildTimelineWidget.java
          • core/src/main/resources/hudson/model/User/builds.jelly
          • core/src/main/resources/hudson/model/BuildTimelineWidget/control.jelly
          • core/src/main/java/hudson/model/Job.java
          • core/src/main/java/hudson/util/RunList.java
          • core/src/main/java/hudson/model/User.java
          • core/src/main/resources/lib/hudson/buildListTable.jelly
          • core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly
          • core/src/main/java/jenkins/widgets/BuildListTable.java

          Jesse Glick : 9679a6123ed30cb70e4d6e4b389f14d04746b995
          Files :

          • core/src/main/java/hudson/util/RunList.java
          • changelog.html

          dogfood added a comment - Integrated in jenkins_main_trunk #3106 JENKINS-20892 Partial fix of poor scalability in /builds and related displays. (Revision c5e23739fa85a6fe93ad90a35da4051a2767c874) JENKINS-20892 Noting merge of #1046. (Revision 9679a6123ed30cb70e4d6e4b389f14d04746b995) Result = SUCCESS Jesse Glick : c5e23739fa85a6fe93ad90a35da4051a2767c874 Files : core/src/main/java/hudson/Functions.java core/src/main/java/hudson/model/BuildTimelineWidget.java core/src/main/resources/hudson/model/User/builds.jelly core/src/main/resources/hudson/model/BuildTimelineWidget/control.jelly core/src/main/java/hudson/model/Job.java core/src/main/java/hudson/util/RunList.java core/src/main/java/hudson/model/User.java core/src/main/resources/lib/hudson/buildListTable.jelly core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly core/src/main/java/jenkins/widgets/BuildListTable.java Jesse Glick : 9679a6123ed30cb70e4d6e4b389f14d04746b995 Files : core/src/main/java/hudson/util/RunList.java changelog.html

          is it possible that this is related to JENKINS-21159 ?

          Dominik Bartholdi added a comment - is it possible that this is related to JENKINS-21159 ?

          Jesse Glick added a comment -

          @domi if that is a regression. The issue does not say.

          Jesse Glick added a comment - @domi if that is a regression. The issue does not say.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          core/src/main/java/hudson/util/RunList.java
          http://jenkins-ci.org/commit/jenkins/537e94a09c8fa88607d998162b5a62eac3fe11d5
          Log:
          JENKINS-20892 Noting that RunList.getFirstBuild (used by BuildTimelineWidget) breaks lazy loading.
          (cherry picked from commit a586609c4a2f2083a7f40a6055776afbf2b1f1c7)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/util/RunList.java http://jenkins-ci.org/commit/jenkins/537e94a09c8fa88607d998162b5a62eac3fe11d5 Log: JENKINS-20892 Noting that RunList.getFirstBuild (used by BuildTimelineWidget) breaks lazy loading. (cherry picked from commit a586609c4a2f2083a7f40a6055776afbf2b1f1c7)

          Code changed in jenkins
          User: Jesse Glick
          Path:
          core/src/main/java/hudson/model/User.java
          http://jenkins-ci.org/commit/jenkins/46d4a638182d149b105414eadf172157e4fcb96e
          Log:
          JENKINS-20892 /user//rssLatest should use getAllItems to check in folders, just like /user//builds does.
          (cherry picked from commit ece93739dd291d03c673664afe6b4aaa00f07ef1)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/model/User.java http://jenkins-ci.org/commit/jenkins/46d4a638182d149b105414eadf172157e4fcb96e Log: JENKINS-20892 /user/ /rssLatest should use getAllItems to check in folders, just like /user/ /builds does. (cherry picked from commit ece93739dd291d03c673664afe6b4aaa00f07ef1)

          Code changed in jenkins
          User: Jesse Glick
          Path:
          core/src/main/java/hudson/model/User.java
          http://jenkins-ci.org/commit/jenkins/915000b5a0a4c33e02104e47c4b9420192531e07
          Log:
          JENKINS-20892 Introduced method so that /user//rssLatest can check UserIdCause just like /user//builds already was.
          (cherry picked from commit 76af02eed23f43ebd7fde094d939339705b1ef0f)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/model/User.java http://jenkins-ci.org/commit/jenkins/915000b5a0a4c33e02104e47c4b9420192531e07 Log: JENKINS-20892 Introduced method so that /user/ /rssLatest can check UserIdCause just like /user/ /builds already was. (cherry picked from commit 76af02eed23f43ebd7fde094d939339705b1ef0f)

          Code changed in jenkins
          User: Jesse Glick
          Path:
          core/src/main/java/hudson/Functions.java
          core/src/main/java/hudson/model/BuildTimelineWidget.java
          core/src/main/java/hudson/model/Job.java
          core/src/main/java/hudson/model/User.java
          core/src/main/java/hudson/util/RunList.java
          core/src/main/java/jenkins/widgets/BuildListTable.java
          core/src/main/resources/hudson/model/BuildTimelineWidget/control.jelly
          core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly
          core/src/main/resources/hudson/model/User/builds.jelly
          core/src/main/resources/lib/hudson/buildListTable.jelly
          http://jenkins-ci.org/commit/jenkins/ef6343be19fc990e0fcdab31d4d3f30c56baba0b
          Log:
          JENKINS-20892 Partial fix of poor scalability in /builds and related displays.
          (cherry picked from commit c5e23739fa85a6fe93ad90a35da4051a2767c874)

          Compare: https://github.com/jenkinsci/jenkins/compare/f61086b56cec...ef6343be19fc

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/Functions.java core/src/main/java/hudson/model/BuildTimelineWidget.java core/src/main/java/hudson/model/Job.java core/src/main/java/hudson/model/User.java core/src/main/java/hudson/util/RunList.java core/src/main/java/jenkins/widgets/BuildListTable.java core/src/main/resources/hudson/model/BuildTimelineWidget/control.jelly core/src/main/resources/hudson/model/Job/buildTimeTrend.jelly core/src/main/resources/hudson/model/User/builds.jelly core/src/main/resources/lib/hudson/buildListTable.jelly http://jenkins-ci.org/commit/jenkins/ef6343be19fc990e0fcdab31d4d3f30c56baba0b Log: JENKINS-20892 Partial fix of poor scalability in /builds and related displays. (cherry picked from commit c5e23739fa85a6fe93ad90a35da4051a2767c874) Compare: https://github.com/jenkinsci/jenkins/compare/f61086b56cec...ef6343be19fc

          with this fix/change, only 20 builds are shown in the buildTimeTrend - see JENKINS-22008 for more about it.

          Dominik Bartholdi added a comment - with this fix/change, only 20 builds are shown in the buildTimeTrend - see JENKINS-22008 for more about it.

          Sam Xiao added a comment -

          Can we port this back to LTS?

          Sam Xiao added a comment - Can we port this back to LTS?

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: