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

Time remaining for all pipeline jobs is N/A

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      Since upgrading to Jenkins 2.100, all Jenkins Pipeline Jobs have started showing barber poles, and reporting the time left as N/A, despite some of them having run thousands of times, and should have plenty of run information to at least give some perspective on the time remaining.

       

      As over 90% of our jobs now use pipeline or declarative pipeline, I thought that all jobs were experiencing the issue, however Freestyle projects seem to report their time remaining just fine

        Attachments

          Issue Links

            Activity

            tomlarrow Tom Larrow created issue -
            Hide
            abayer Andrew Bayer added a comment -

            So nothing changed but upgrading to core 2.100? What had you been on previously?

            Show
            abayer Andrew Bayer added a comment - So nothing changed but upgrading to core 2.100? What had you been on previously?
            Hide
            tomlarrow Tom Larrow added a comment -

            We were on 2.98 previously, and in the recent week have upgraded from 2.97 to 2.98.  When we did the 2.97 to 2.98 conversion we faced an the issue where the nodes were not connecting.  In addition to updating the Swarm plugin from 3.6 to 3.7 we rebuilt the docker images containing our nodes to update Jenkins remoting client from 3.12 to 3.15

            I noticed the N/A a few times with jobs, after that, but it was when we went to 2.100 that they seemed to happen all the time.

            I did just watch a job which does most of the work on the slave, and was N/A for the entire time on the slave, jump to perform a task on the master.  While it was on the master, it did have an estimate.  So it seems to be something in the remoting which may not be reporting the time.

            Show
            tomlarrow Tom Larrow added a comment - We were on 2.98 previously, and in the recent week have upgraded from 2.97 to 2.98.  When we did the 2.97 to 2.98 conversion we faced an the issue where the nodes were not connecting.  In addition to updating the Swarm plugin from 3.6 to 3.7 we rebuilt the docker images containing our nodes to update Jenkins remoting client from 3.12 to 3.15 I noticed the N/A a few times with jobs, after that, but it was when we went to 2.100 that they seemed to happen all the time. I did just watch a job which does most of the work on the slave, and was N/A for the entire time on the slave, jump to perform a task on the master.  While it was on the master, it did have an estimate.  So it seems to be something in the remoting which may not be reporting the time.
            Hide
            abayer Andrew Bayer added a comment -

            Ok, Oleg Nenashev, any ideas on what might have changed recently in remoting that could be causing this?

            Show
            abayer Andrew Bayer added a comment - Ok, Oleg Nenashev , any ideas on what might have changed recently in remoting that could be causing this?
            Hide
            abayer Andrew Bayer added a comment -

            Actually, looking a little more closely - ExecutorStepExecution.PlaceholderTask#getEstimatedDuration() is probably what's relevant here. And if you're seeing the estimate show up right on cases where it's not on an agent (i.e., not in a node block in the Pipeline), then there's definitely something awry there, probably with ExecutorStepExecution.PlaceholderTask#run(). I'll investigate.

            Show
            abayer Andrew Bayer added a comment - Actually, looking a little more closely - ExecutorStepExecution.PlaceholderTask#getEstimatedDuration() is probably what's relevant here. And if you're seeing the estimate show up right on cases where it's not on an agent (i.e., not in a node block in the Pipeline), then there's definitely something awry there, probably with ExecutorStepExecution.PlaceholderTask#run() . I'll investigate.
            Hide
            abayer Andrew Bayer added a comment -

            Well, joy, can't reproduce with core 2.100/remoting 3.15/latest of all Pipeline plugins, at least not via unit tests.

            Show
            abayer Andrew Bayer added a comment - Well, joy, can't reproduce with core 2.100/remoting 3.15/latest of all Pipeline plugins, at least not via unit tests.
            Hide
            tomlarrow Tom Larrow added a comment -

            From the outside, it appears that https://build.kde.org/ may be experiencing the same issue.  From my unauthenticated view, all jobs are reporting N/A , and they are also on Jenkins 2.101 and using many pipeline jobs building on external nodes.  I just don't know if it is because I am unauthenticated which is the reason for me seeing N/A on all the jobs.

            Show
            tomlarrow Tom Larrow added a comment - From the outside, it appears that https://build.kde.org/  may be experiencing the same issue.  From my unauthenticated view, all jobs are reporting N/A , and they are also on Jenkins 2.101 and using many pipeline jobs building on external nodes.  I just don't know if it is because I am unauthenticated which is the reason for me seeing N/A on all the jobs.
            Hide
            abayer Andrew Bayer added a comment -

            Oleg Nenashev - any ideas here? Feels like a core thing rather than a Pipeline thing, but it only pops up for Pipeline jobs...

            Show
            abayer Andrew Bayer added a comment - Oleg Nenashev - any ideas here? Feels like a core thing rather than a Pipeline thing, but it only pops up for Pipeline jobs...
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Andrew Bayer I'd bet it is an issue after JENKINS-48350 in 2.92

            Show
            oleg_nenashev Oleg Nenashev added a comment - Andrew Bayer I'd bet it is an issue after JENKINS-48350 in 2.92
            oleg_nenashev Oleg Nenashev made changes -
            Field Original Value New Value
            Link This issue is related to JENKINS-48350 [ JENKINS-48350 ]
            oleg_nenashev Oleg Nenashev made changes -
            Component/s core [ 15593 ]
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            CC Alexander A. I was proposing an extra API in that PR, maybe we need to reconsider that

            Show
            oleg_nenashev Oleg Nenashev added a comment - CC Alexander A . I was proposing an extra API in that PR, maybe we need to reconsider that
            Hide
            blanger Berno Langer added a comment -

            In hudson.model.Executor the executableEstimatedDuration is resetted always in the finally block at line 462. Moving this one line up, so it is only executed when there is no asynchronous execution, solved the problem for me.

            [...]
            458       } finally {
            459            if (asynchronousExecution == null) {
            460                finish2();
            461                executableEstimatedDuration = DEFAULT_ESTIMATED_DURATION;
            462            }
            463        }
            [...]
            
            Show
            blanger Berno Langer added a comment - In hudson.model.Executor the executableEstimatedDuration is resetted always in the finally block at line 462 . Moving this one line up, so it is only executed when there is no asynchronous execution, solved the problem for me. [...] 458 } finally { 459 if (asynchronousExecution == null) { 460 finish2(); 461 executableEstimatedDuration = DEFAULT_ESTIMATED_DURATION; 462 } 463 } [...]
            Hide
            starfire_ Andreas Tscharner added a comment -

            This error also appears in 2.89.4

            Show
            starfire_ Andreas Tscharner added a comment - This error also appears in 2.89.4
            oleg_nenashev Oleg Nenashev made changes -
            Link This issue is duplicated by JENKINS-49616 [ JENKINS-49616 ]
            oleg_nenashev Oleg Nenashev made changes -
            Labels regression
            Show
            oleg_nenashev Oleg Nenashev added a comment - https://github.com/jenkinsci/jenkins/pull/3329
            oleg_nenashev Oleg Nenashev made changes -
            Remote Link This issue links to "https://github.com/jenkinsci/jenkins/pull/3329 (Web Link)" [ 20227 ]
            oleg_nenashev Oleg Nenashev made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            oleg_nenashev Oleg Nenashev made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            oleg_nenashev Oleg Nenashev made changes -
            Assignee Berno Langer [ blanger ]
            oleg_nenashev Oleg Nenashev made changes -
            Labels regression lts-candidate regression
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Berno Langer
            Path:
            core/src/main/java/hudson/model/Executor.java
            http://jenkins-ci.org/commit/jenkins/3fc392108ae382a4616964aa8bbb6b8cb9dff0dc
            Log:
            JENKINS-48821 - Don't forget estimated duration of asynchronous jobs (#3329)

            • Don't forget estimated duration of asynchronous jobs.

            When jobs are executed, the estimated duration is calculated, memorized
            and reseted when the job is finished.

            But when the job is executed asynchronously (e.g. as for pipeline
            scripts), the execution is just triggered. Therefore the estimated
            duration should remain - and not be reseted after triggering.

            JENKINS-48821: Time remaining for all pipeline jobs is N/A
            JENKINS-49616: Estimated time remaining NA

            • Reset cached estimated duration also when asynchronous job ends.
            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Berno Langer Path: core/src/main/java/hudson/model/Executor.java http://jenkins-ci.org/commit/jenkins/3fc392108ae382a4616964aa8bbb6b8cb9dff0dc Log: JENKINS-48821 - Don't forget estimated duration of asynchronous jobs (#3329) Don't forget estimated duration of asynchronous jobs. When jobs are executed, the estimated duration is calculated, memorized and reseted when the job is finished. But when the job is executed asynchronously (e.g. as for pipeline scripts), the execution is just triggered. Therefore the estimated duration should remain - and not be reseted after triggering. JENKINS-48821 : Time remaining for all pipeline jobs is N/A JENKINS-49616 : Estimated time remaining NA Reset cached estimated duration also when asynchronous job ends.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            The patch has been integrated towards 2.111

            Show
            oleg_nenashev Oleg Nenashev added a comment - The patch has been integrated towards 2.111
            oleg_nenashev Oleg Nenashev made changes -
            Status In Review [ 10005 ] Resolved [ 5 ]
            Resolution Fixed [ 1 ]
            olivergondza Oliver Gondža made changes -
            Labels lts-candidate regression 2.107.2-fixed regression
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Berno Langer
            Path:
            core/src/main/java/hudson/model/Executor.java
            http://jenkins-ci.org/commit/jenkins/1400918ddaef45470720e60d4d1dbfd2f6ac78d4
            Log:
            JENKINS-48821 - Don't forget estimated duration of asynchronous jobs (#3329)

            • Don't forget estimated duration of asynchronous jobs.

            When jobs are executed, the estimated duration is calculated, memorized
            and reseted when the job is finished.

            But when the job is executed asynchronously (e.g. as for pipeline
            scripts), the execution is just triggered. Therefore the estimated
            duration should remain - and not be reseted after triggering.

            JENKINS-48821: Time remaining for all pipeline jobs is N/A
            JENKINS-49616: Estimated time remaining NA

            • Reset cached estimated duration also when asynchronous job ends.

            (cherry picked from commit 3fc392108ae382a4616964aa8bbb6b8cb9dff0dc)

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Berno Langer Path: core/src/main/java/hudson/model/Executor.java http://jenkins-ci.org/commit/jenkins/1400918ddaef45470720e60d4d1dbfd2f6ac78d4 Log: JENKINS-48821 - Don't forget estimated duration of asynchronous jobs (#3329) Don't forget estimated duration of asynchronous jobs. When jobs are executed, the estimated duration is calculated, memorized and reseted when the job is finished. But when the job is executed asynchronously (e.g. as for pipeline scripts), the execution is just triggered. Therefore the estimated duration should remain - and not be reseted after triggering. JENKINS-48821 : Time remaining for all pipeline jobs is N/A JENKINS-49616 : Estimated time remaining NA Reset cached estimated duration also when asynchronous job ends. (cherry picked from commit 3fc392108ae382a4616964aa8bbb6b8cb9dff0dc)

              People

              • Assignee:
                blanger Berno Langer
                Reporter:
                tomlarrow Tom Larrow
              • Votes:
                3 Vote for this issue
                Watchers:
                13 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: