[JIRA] (JENKINS-45571) "likely stuck" job is not actually stuck.

5 views
Skip to first unread message

dbeck@cloudbees.com (JIRA)

unread,
Jul 27, 2018, 12:25:02 PM7/27/18
to jenkinsc...@googlegroups.com
Daniel Beck commented on Bug JENKINS-45571
 
Re: "likely stuck" job is not actually stuck.

From another source I got a few logs of something that looks a lot like this – could you check whether the listed builds appear in the Jenkins system log as having failed to resume after restart, or similar?

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.10.1#710002-sha1:6efc396)

dnusbaum@cloudbees.com (JIRA)

unread,
Jul 27, 2018, 1:56:02 PM7/27/18
to jenkinsc...@googlegroups.com

The best theory we have is that something is causing the OneOffExecutors to not be cleaned up correctly, and that it might be related to resuming pipelines at startup. Stark Gabriel Are you still seeing this issue? If so, what versions of the workflow-cps and workflow-job plugins do you have installed? Do you see any log messages about the builds that completed but are showing as likely stuck?

gabriel.stark@gmail.com (JIRA)

unread,
Jul 27, 2018, 3:19:03 PM7/27/18
to jenkinsc...@googlegroups.com

I wouldn't know, I don't work in that company anymore. Sorry!

gabriel.stark@gmail.com (JIRA)

unread,
Jul 27, 2018, 3:27:01 PM7/27/18
to jenkinsc...@googlegroups.com
Stark Gabriel edited a comment on Bug JENKINS-45571
I wouldn't know, I don't work in at that company anymore. Sorry!

dnusbaum@cloudbees.com (JIRA)

unread,
Jul 27, 2018, 3:28:01 PM7/27/18
to jenkinsc...@googlegroups.com

svanoort@cloudbees.com (JIRA)

unread,
Jul 27, 2018, 3:50:02 PM7/27/18
to jenkinsc...@googlegroups.com
Sam Van Oort updated an issue
 
Jenkins / Bug JENKINS-45571
Change By: Sam Van Oort
Component/s: workflow-cps-plugin
Component/s: workflow-job-plugin

svanoort@cloudbees.com (JIRA)

unread,
Jul 27, 2018, 3:50:04 PM7/27/18
to jenkinsc...@googlegroups.com
Sam Van Oort assigned an issue to Sam Van Oort
Change By: Sam Van Oort
Assignee: Stark Gabriel Sam Van Oort

svanoort@cloudbees.com (JIRA)

unread,
Jul 27, 2018, 3:57:02 PM7/27/18
to jenkinsc...@googlegroups.com
Sam Van Oort commented on Bug JENKINS-45571
 
Re: "likely stuck" job is not actually stuck.

Devin Nusbaum Daniel Beck IIUC what is being described, this actually maps to a really obnoxious bug I've been investigating for several weeks that has been blocking release of a fix/improvement to persistence (with threading implications due to the use of synchronization during I/O).

It seems to be on the Pipeline end itself though – it relates to how the Pipeline job interacts with the OneOffExecutor created when it throws an AsynchronousExecution upon running. The Pipeline may even get marked as completed, but somehow the listener that terminates the Pipeline is not invoked – I'm simplifying grossly here, of course, in reality there's a very complex asynchronous chain of events with a complex threading model underlying all this.

The behavior can be traced to the upon-resume situation if state was incompletely persisted AFAICT, but it requires somewhat precise timing to trigger the events.

Some situations that cause this behavior have probably been solved by prior fixes, but clearly not all of them.

anna.m.tikhonova@gmail.com (JIRA)

unread,
Aug 8, 2018, 5:00:01 AM8/8/18
to jenkinsc...@googlegroups.com

I'm seeing this issue as well. Lots of executors listed in /computer/api/json?pretty=true&tree=computer[oneOffExecutors[likelyStuck,currentExecutable[building,result,url]]]{0} in the following state:

{
 "currentExecutable" : {
 "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
 "building" : false,
 "result" : "SUCCESS",
 "url" : url
 },
 "likelyStuck" : true
}

However, in my case it doesn't seem to be related to resuming pipelines at Jenkins startup. I have written a script to cleanup such executors. Haven't restarted Jenkins since the script has run, and still I see the new executors like those.

anna.m.tikhonova@gmail.com (JIRA)

unread,
Aug 8, 2018, 5:11:01 AM8/8/18
to jenkinsc...@googlegroups.com

Why this bug could be of more interest is that it intervenes Throttle Concurrent Build plugin scheduling. TCP prevents scheduling more builds because it considers those hanging executors. Once there are more hanging executors than maximum total concurrent builds configured for a job (N), the job is forever stuck ("pending—Already running N builds across all nodes").

dnusbaum@cloudbees.com (JIRA)

unread,
Aug 23, 2018, 1:40:02 PM8/23/18
to jenkinsc...@googlegroups.com

Anna Tikhonova The fact that you are seeing the issue without restarting Jenkins is very interesting. Do you have a pipeline which is able to reproduce the problem consistently?

svanoort@cloudbees.com (JIRA)

unread,
Aug 28, 2018, 5:39:03 PM8/28/18
to jenkinsc...@googlegroups.com

Note from investigation: so, separate from JENKINS-50199 there appears to be a different but related failure mode:

1. The symptoms described by Anna will be reproduced if the build completes (WorkflowRun#finish is called), but the copyLogsTask never gets invoked or fails, since that is what actually removes the FlyWeightTask and kills the OneOffExecutor. See the CopyLogsTask logic - https://github.com/jenkinsci/workflow-job-plugin/blob/master/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java#L403
2. If the AsynchronousExecution is never completed, we'll see a "likelyStuck" executor for each OneOffExecutor

This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

anna.m.tikhonova@gmail.com (JIRA)

unread,
Aug 29, 2018, 7:03:03 AM8/29/18
to jenkinsc...@googlegroups.com

Devin Nusbaum unfortunately, I don't. I've got a few 1000+ LOC pipelines running continuously. I do not know how to tell with one leaves executors and when. 

anna.m.tikhonova@gmail.com (JIRA)

unread,
Aug 29, 2018, 7:13:01 AM8/29/18
to jenkinsc...@googlegroups.com
Anna Tikhonova edited a comment on Bug JENKINS-45571
[~dnusbaum] unfortunately, I don't. I've got a few 1000+ LOC pipelines running continuously. I do not know how to tell with one leaves executors and when.  

Pipeline build that has such "likelyStuck" executor looks completed on its build page (no progress bars, build status is set). But I still can see a matching OneOffExecutor on master:
{code:java}
      "_class" : "hudson.model.Hudson$MasterComputer",
      "oneOffExecutors" : [
        {
          "currentExecutable" : {
            "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
            "building" : false,    // always false for these lost executors
            "result" : "SUCCESS",    // always set to some valid build status != null
            "url" : "JENKINS/job/PIPELINE/BUILD_NUMBER/"
          },
          "likelyStuck" : false    // can be true or false
        }, ...
{code}

dnusbaum@cloudbees.com (JIRA)

unread,
Aug 29, 2018, 10:20:03 AM8/29/18
to jenkinsc...@googlegroups.com

Anna Tikhonova Are you able upload the build directory of the build matching the stuck executor? Specifically, it would be helpful to see build.xml and the xml file(s) in the workflow directory.

anna.m.tikhonova@gmail.com (JIRA)

unread,
Aug 29, 2018, 10:32:02 AM8/29/18
to jenkinsc...@googlegroups.com
Anna Tikhonova edited a comment on Bug JENKINS-45571
[~dnusbaum] unfortunately, I don't. I've got a few 1000+ LOC pipelines running continuously. I do not know how to tell with which one leaves executors and when.


Pipeline build that has such "likelyStuck" executor looks completed on its build page (no progress bars, build status is set). But I still can see a matching OneOffExecutor on master:
{code:java}
      "_class" : "hudson.model.Hudson$MasterComputer",
      "oneOffExecutors" : [
        {
          "currentExecutable" : {
            "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
            "building" : false,    // always false for these lost executors
            "result" : "SUCCESS",    // always set to some valid build status != null
            "url" : "JENKINS/job/PIPELINE/BUILD_NUMBER/"
          },
          "likelyStuck" : false    // can be true or false
        }, ...
{code}

dnusbaum@cloudbees.com (JIRA)

unread,
Aug 29, 2018, 10:38:02 AM8/29/18
to jenkinsc...@googlegroups.com
Devin Nusbaum edited a comment on Bug JENKINS-45571
[~atikhonova] Are you able upload the build directory of the build matching the stuck executor? Specifically, it would be helpful to see \ {{build.xml}} and the xml file(s) in the \ {{workflow}} directory. EDIT: I see now that you can't easily tell which are stuck and which are good. If you can find an executor with {{likelyStuck: true}}, and whose build looks like it has otherwise completed or is suck, that would be a great candidate.

dnusbaum@cloudbees.com (JIRA)

unread,
Aug 29, 2018, 10:39:02 AM8/29/18
to jenkinsc...@googlegroups.com
Devin Nusbaum edited a comment on Bug JENKINS-45571
[~atikhonova] Are you able upload the build directory of the build matching the stuck executor? Specifically, it would be helpful to see {{build.xml}} and the xml file(s) in the {{workflow}} directory. EDIT: I see now that you can't easily tell which are stuck and which are good. If you can find an executor with {{likelyStuck: true}}, and whose build looks like it has otherwise completed or is suck, that would be a great candidate.


Another note: JENKINS-52165 will change the control flow here significantly.

jglick@cloudbees.com (JIRA)

unread,
Sep 28, 2018, 1:45:02 PM9/28/18
to jenkinsc...@googlegroups.com

gives you the jobs currently running

This is not really an appropriate API query to use for that question. If your interest is limited to all Pipeline builds, FlowExecutionList is likely to be more useful. If you are looking at builds of a particular job (Pipeline or not), I think that information is available from the endpoint for that job.

dnusbaum@cloudbees.com (JIRA)

unread,
Sep 28, 2018, 1:47:02 PM9/28/18
to jenkinsc...@googlegroups.com
Devin Nusbaum edited a comment on Bug JENKINS-45571
[~atikhonova] Are you able upload the build directory of the build matching the stuck executor? Specifically, it would be helpful to see {{build.xml}} and the xml file(s) in the {{workflow}} directory. EDIT: I see now that you can't easily tell which are stuck and which are good. If you can find an executor with {{likelyStuck: true}}, and whose build looks like it has otherwise completed or is suck, that would be a great candidate.

Another note: JENKINS- 52165 38381 will change the control flow here significantly.

jglick@cloudbees.com (JIRA)

unread,
Sep 28, 2018, 3:26:02 PM9/28/18
to jenkinsc...@googlegroups.com

TCP prevents scheduling more builds because it considers those hanging executors.

Offhand this sounds like a flaw in TCB. This PR introduced that behavior, purportedly to support the build-flow plugin (a conceptual predecessor of Pipeline née Workflow). If TCB intends to throttle builds per se (rather than work done by those builds—typically node blocks for Pipeline), then there are more direct ways of doing this than counting Executor slots.

vivek.pandey@gmail.com (JIRA)

unread,
Nov 16, 2018, 12:29:04 PM11/16/18
to jenkinsc...@googlegroups.com
Vivek Pandey updated an issue
 
Change By: Vivek Pandey
Labels: api triaged-2018-11

me@basilcrow.com (JIRA)

unread,
Feb 12, 2019, 10:11:02 PM2/12/19
to jenkinsc...@googlegroups.com

Offhand this sounds like a flaw in TCB.

I am attempting to fix this flaw in jenkinsci/throttle-concurrent-builds-plugin#57.

me@basilcrow.com (JIRA)

unread,
Feb 5, 2020, 6:41:03 PM2/5/20
to jenkinsc...@googlegroups.com

I am attempting to fix this flaw in jenkinsci/throttle-concurrent-builds-plugin#57.

This PR has been merged, and the master branch of Throttle Concurrent Builds now uses FlowExecutionList to calculate the number of running Pipeline jobs, which should work around the issue described in this bug. I have yet to release a new version of Throttle Concurrent Builds with this fix, but there is an incremental build available here. Anna Tikhonova, are you interested in testing this incremental build before I do an official release?

This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages