Unbounded searches with BuildUtil.getDownstreamBuild

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      BuildUtil.getDownstreamBuild does an unbounded search of build records, which is never acceptable due to Jenkins lazy-loading, and particular not in the context of an HTTP handler thread.

      It would be better is to use AbstractBuild.getDownstreamBuilds(AbstractProject), which is efficient, though it only works for project chains which are correctly configured with fingerprints.

      Example:

      "Handling GET /jenkins/org/job/Pipelines/job/org-build/view/Pipelines_View/ from 10.x.x.x : RequestHandlerThread[#2296] View/index.jelly" Id=126293 BLOCKED on hudson.model.RunMap@607d5beb owned by "Handling GET /jenkins/org/job/Pipelines/job/org-build/ from 10.x.x.x : RequestHandlerThread[#2297] View/index.jelly" Id=126471
          at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java)
          -  blocked on hudson.model.RunMap@607d5beb
          at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:448)
          at jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(AbstractLazyLoadRunMap.java:356)
          at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:332)
          at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:74)
          at jenkins.model.lazy.LazyLoadRunMapEntrySet$1.next(LazyLoadRunMapEntrySet.java:63)
          at java.util.AbstractMap$2$1.next(AbstractMap.java:396)
          at au.com.centrumsystems.hudson.plugin.util.BuildUtil.getDownstreamBuild(BuildUtil.java:66)
      

            Assignee:
            Steven Christou
            Reporter:
            Mark Austin
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: