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

console log hangs in web browser after upgrade

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: In Progress (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: workflow-job-plugin
    • Environment:
      Jenkins v2.89.4 w/ workflow-job-plugin v2.25
      Jenkins v2.150.3 w/ workflow-job-plugin v2.31
      Jenkins v2.289.2 w/ workflow-job-plugin v2.41
    • Similar Issues:

      Description

      We recently upgraded Jenkins from 2.89.4 to 2.150.3 and then upgraded the workflow-job plugin from 2.25 to 2.31 and are now seeing an issue where the full console log in the Jenkins UI is having issues loading. We run a parallel pipeline heavy workload which results in a 13mb console log in 2.150.3 and a 46mb console log in 2.89.4. In Jenkins 2.89.4, it took 45 seconds to load the full console log file in Chrome and even less time in Firefox. In Jenkins 2.150.3 the log file took 2m 30sec in Chrome and after 5 minutes never loaded in Firefox. I kept seeing "A web page is slowing down your browser. What would you like to do? [Stop It, Wait]" and eventually Firefox became unresponsive. I used Chrome 72 and Firefox 65 in my testing.

        Attachments

          Activity

          Hide
          fengxx Ted Xiao added a comment -

          I think it is because the javascript function which loops each line and appended parallel label

          https://github.com/jenkinsci/workflow-job-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/workflow/job/console/NewNodeConsoleNote/script.js#L21-L42

          It can be reproduced by a generating lots of lines in parallel step, such as

           

          def genText(lines){
              (1..lines).each{
          	   println "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur interdum fringilla interdum"
              }
              return true
          }
          
          parallel "branch-1" : { genText(20000) }, 
                    "branch-2": { genText(20000)} 

          The consoleFull is very slow and firefox complaining about the js

          Jesse Glick does it make sense to generate the label in backend(Jenkins side) ?

          Show
          fengxx Ted Xiao added a comment - I think it is because the javascript function which loops each line and appended parallel label https://github.com/jenkinsci/workflow-job-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/workflow/job/console/NewNodeConsoleNote/script.js#L21-L42 It can be reproduced by a generating lots of lines in parallel step, such as   def genText(lines){ (1..lines).each{ println "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur interdum fringilla interdum" } return true } parallel "branch-1" : { genText(20000) }, "branch-2" : { genText(20000)} The consoleFull is very slow and firefox complaining about the js Jesse Glick does it make sense to generate the label in backend(Jenkins side) ?
          Hide
          jglick Jesse Glick added a comment -

          I would start by seeing if the loop can be cut off at some threshold, then see if the loop can be optimized for the lines it does process.

          Show
          jglick Jesse Glick added a comment - I would start by seeing if the loop can be cut off at some threshold, then see if the loop can be optimized for the lines it does process.
          Hide
          dnusbaum Devin Nusbaum added a comment -

          I have been looking into related log performance issues, and I noticed that large logs were very slow in Chrome. In particular, Chrome would hang when scrolling, and show just a blank page until it became responsive again, and selecting text was very delayed. Firefox did not have the same issue. I think the issue was at least partly caused by this bug in Chromium, which was just marked as fixed yesterday. I was able to verify that updating Chrome to a version with the fix for that issue (79.0.3945.130) caused the issues I was experiencing to go away, and for performance to be much closer to Firefox.

          Are other users seeing this problem on Firefox, or only in Chrome/Chromium?

          They are definitely some other things that should be improved, I just wanted to note that at least some of the problem seems to have been a bug in Chromium that was very recently fixed.

          Show
          dnusbaum Devin Nusbaum added a comment - I have been looking into related log performance issues, and I noticed that large logs were very slow in Chrome. In particular, Chrome would hang when scrolling, and show just a blank page until it became responsive again, and selecting text was very delayed. Firefox did not have the same issue. I think the issue was at least partly caused by this bug in Chromium , which was just marked as fixed yesterday. I was able to verify that updating Chrome to a version with the fix for that issue (79.0.3945.130) caused the issues I was experiencing to go away, and for performance to be much closer to Firefox. Are other users seeing this problem on Firefox, or only in Chrome/Chromium? They are definitely some other things that should be improved, I just wanted to note that at least some of the problem seems to have been a bug in Chromium that was very recently fixed.
          Hide
          sundarkasturi_boa Sundar Kasturi added a comment -

          We are facing the same issue.. Chrome does not respond or return back on a large console log

          Any idea when this would be resolved? Seems open from about a year.

          Show
          sundarkasturi_boa Sundar Kasturi added a comment - We are facing the same issue.. Chrome does not respond or return back on a large console log Any idea when this would be resolved? Seems open from about a year.
          Hide
          duemir Denys Digtiar added a comment -

          FYI Jeremy Hartley. It looks like something UX SIG might be interested in.

          Show
          duemir Denys Digtiar added a comment - FYI Jeremy Hartley . It looks like something UX SIG might be interested in.
          Hide
          jhartley Jeremy Hartley added a comment -

          Denys Digtiar - this doesn't really fit the work the UX SIG is currently engaged with. Thanks for letting me know though

          Show
          jhartley Jeremy Hartley added a comment - Denys Digtiar - this doesn't really fit the work the UX SIG is currently engaged with. Thanks for letting me know though
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          Gergan Zhekov is it something you are working on?

          Show
          oleg_nenashev Oleg Nenashev added a comment - Gergan Zhekov is it something you are working on?
          Hide
          gerganzh Gergan Zhekov added a comment - - edited

          Oleg Nenashev I am currently working on this and I am making good progress. Logs that used to load for 2 minutes now load in the span of 2-5 seconds. Will make a pull request on Tuesday. 

          Show
          gerganzh Gergan Zhekov added a comment - - edited Oleg Nenashev I am currently working on this and I am making good progress. Logs that used to load for 2 minutes now load in the span of 2-5 seconds. Will make a pull request on Tuesday. 
          Hide
          gerganzh Gergan Zhekov added a comment - - edited

          I've made a pull request: https://github.com/jenkinsci/workflow-job-plugin/pull/164

          My PR build failed, and my guess is that the tests require a higher version of Jenkins (all of them pass locally). This is the error:

           
          Caused by: java.io.IOException: Pipeline: Nodes and Processes version 2.35 failed to load.
           - You must update Jenkins from version 2.164.1 to version 2.176.1 or later to run this plugin.
          

          The last commit in the main repository seems to be related to the build process (and also updated the required Jenkins version). I am not 100% sure if that is the reason though.

          Show
          gerganzh Gergan Zhekov added a comment - - edited I've made a pull request: https://github.com/jenkinsci/workflow-job-plugin/pull/164 My PR build failed, and my guess is that the tests require a higher version of Jenkins (all of them pass locally). This is the error: Caused by: java.io.IOException: Pipeline: Nodes and Processes version 2.35 failed to load. - You must update Jenkins from version 2.164.1 to version 2.176.1 or later to run this plugin. The last commit in the main repository seems to be related to the build process (and also updated the required Jenkins version). I am not 100% sure if that is the reason though.

            People

            Assignee:
            gerganzh Gergan Zhekov
            Reporter:
            mkozell Mike Kozell
            Votes:
            2 Vote for this issue
            Watchers:
            13 Start watching this issue

              Dates

              Created:
              Updated: