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

Weather column should render asynchronously

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      Job.getBuildHealthReports can be expensive, especially with Maven projects (see JENKINS-19392). Putting jobs into folders does not help, because Folder.getBuildHealthReports recursively traverses them, and the default WorstChildHealthMetric checks the result of each leaf. It should not be called synchronously during page rendering. Rather, WeatherColumn/column.jelly should use an AJAX callback of some kind, effective while the page is fronted. So you would get a quick page load, with some icons filling in progressively. Still puts load on the server but potentially much less.

        Attachments

          Issue Links

            Activity

            jglick Jesse Glick created issue -
            jglick Jesse Glick made changes -
            Field Original Value New Value
            Link This issue is related to JENKINS-19392 [ JENKINS-19392 ]
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-25074 [ JENKINS-25074 ]
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-25073 [ JENKINS-25073 ]
            Hide
            jglick Jesse Glick added a comment -

            Auto refresh makes everything that much worse.

            Show
            jglick Jesse Glick added a comment - Auto refresh makes everything that much worse.
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-19828 [ JENKINS-19828 ]
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-25078 [ JENKINS-25078 ]
            Hide
            jglick Jesse Glick added a comment -

            Looked into implementing this. Tricky to render HTML content from existing column.jelly scripts but ought to be possible. (l:renderOnDemand is not suitable since that makes one HTTP request per response, and is insensitive to page activity. Really want ProgressiveRendering, but this does not yet support HTML output, only JSON, meaning that buildHealth.jelly could not be reused.)

            The real trouble is JENKINS-16341: even creating a single ProgressiveRendering per list view render would add a new entry to BoundObjectTable per page load, which would quickly add up to a huge amount of memory consumed by the server if you have lots of active sessions browsing Jenkins repeatedly.

            Show
            jglick Jesse Glick added a comment - Looked into implementing this. Tricky to render HTML content from existing column.jelly scripts but ought to be possible. ( l:renderOnDemand is not suitable since that makes one HTTP request per response, and is insensitive to page activity. Really want ProgressiveRendering , but this does not yet support HTML output, only JSON, meaning that buildHealth.jelly could not be reused.) The real trouble is JENKINS-16341 : even creating a single ProgressiveRendering per list view render would add a new entry to BoundObjectTable per page load, which would quickly add up to a huge amount of memory consumed by the server if you have lots of active sessions browsing Jenkins repeatedly.
            jglick Jesse Glick made changes -
            Link This issue depends on JENKINS-16341 [ JENKINS-16341 ]
            jglick Jesse Glick made changes -
            Link This issue depends on JENKINS-16341 [ JENKINS-16341 ]
            Hide
            jglick Jesse Glick added a comment -

            Depends on more tractable special case JENKINS-25081.

            Show
            jglick Jesse Glick added a comment - Depends on more tractable special case JENKINS-25081 .
            jglick Jesse Glick made changes -
            Link This issue depends on JENKINS-25081 [ JENKINS-25081 ]
            jglick Jesse Glick made changes -
            Link This issue is duplicated by JENKINS-20731 [ JENKINS-20731 ]
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-18895 [ JENKINS-18895 ]
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-36629 [ JENKINS-36629 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 158976 ] JNJira + In-Review [ 179811 ]
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-18377 [ JENKINS-18377 ]

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              jglick Jesse Glick
              Votes:
              3 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated: