Currently the only information you get from a virtual thread dump for a build waiting inside a StepExecution is the function name of the step, plus the stack trace of the Groovy code calling it of course. But steps may have richer information available about why they are paused. For example, a DurableTaskStep could indicate that it is waiting for a particular jenkins-result.txt file (specifying the node name and absolute path). Or a BuildTriggerStep might be able to say whether it is waiting on a queue item or a particular downstream build.

      To surface this information to a user or support technician we would like an API in StepExecution allowing the running step to give information about what it is doing and why: some kind of short message that would fit naturally at the top of a stack trace.

      A partial workaround is for steps to print messages to the build log when stop is called, though this implies that you are ready to halt the build. The information may also be superfluous if the step's normal shutdown procedure in fact works; for example the process killing in DurableTaskStepExecution.stop need not print any special message if the process responds to the signal.

          [JENKINS-31842] Allow steps to decorate thread dumps

          Jesse Glick added a comment -

          CpsThreadDump would call the new API.

          Other implementations could include: ExecutorStepExecution (show whether the PlaceholderTask is waiting in queue, and if so, why—CauseOfBlockage); SleepStep.Execution and TimeoutStepExecution (show remaining time); AbstractSynchronousNonBlockingStepExecution (indicate thread name where the code is running in a regular thread dump); LockStep (owner of lock); ParallelStepExecution (which branches are still alive).

          Jesse Glick added a comment - CpsThreadDump would call the new API. Other implementations could include: ExecutorStepExecution (show whether the PlaceholderTask is waiting in queue, and if so, why— CauseOfBlockage ); SleepStep.Execution and TimeoutStepExecution (show remaining time); AbstractSynchronousNonBlockingStepExecution (indicate thread name where the code is running in a regular thread dump); LockStep (owner of lock); ParallelStepExecution (which branches are still alive).

          Jesse Glick added a comment -

          ParallelStepExecution.toString could probably check which ResultHandler.outcomes are finalized, though I am not sure this is particularly relevant in practice.

          Jesse Glick added a comment - ParallelStepExecution.toString could probably check which ResultHandler.outcomes are finalized, though I am not sure this is particularly relevant in practice.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/org/jenkinsci/plugins/workflow/pickles/Pickle.java
          http://jenkins-ci.org/commit/workflow-cps-plugin/3705e3f13c84ae5a29a1cba0884e5e67f54e7caa
          Log:
          JENKINS-26130 JENKINS-31842 Request that pickle futures be printable.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/org/jenkinsci/plugins/workflow/pickles/Pickle.java http://jenkins-ci.org/commit/workflow-cps-plugin/3705e3f13c84ae5a29a1cba0884e5e67f54e7caa Log: JENKINS-26130 JENKINS-31842 Request that pickle futures be printable.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/org/jenkinsci/plugins/workflow/pickles/Pickle.java
          http://jenkins-ci.org/commit/workflow-cps-plugin/fcfd11127a794463bf178d86fb88e2414a51ed1f
          Log:
          Merge pull request #7 from jglick/CpsThreadDump-JENKINS-31842

          JENKINS-31842 Thread dump improvements

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/org/jenkinsci/plugins/workflow/pickles/Pickle.java http://jenkins-ci.org/commit/workflow-cps-plugin/fcfd11127a794463bf178d86fb88e2414a51ed1f Log: Merge pull request #7 from jglick/CpsThreadDump- JENKINS-31842 JENKINS-31842 Thread dump improvements

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

              Created:
              Updated:
              Resolved: