jenkinsci / jenkinsci/workflow-cps-plugin
[JENKINS-70401] On aborting pipeline multiple times the pipeling gets status aborted but it is not completed yet
- Dominant language
- Java
- Stars
- 186
- Forks
- 213
- Avg merge
- 12h 12m
- Merged PRs (30d)
- 8
Description
I have created one pipeline in which i build multiple docker images in parallel with remote executor which deploys pod and inside the pod there is multiple containers running which will build the docker image and every docker image build is one step in pipeline , now the issue is that whenever i click abort manually more then 3-4 times means forcefully terminate the job , it sets status of pipeline aborted but some it don't send the remove remote executor signal so the remote executor node behind the scene stuck on running while i get this error in my jenkins logs :
2023-01-10 13:57:08.179+0000 [id=1623511] WARNING o.j.p.w.cps.CpsVmExecutorService#reportProblem: Unexpected exception in CPS VM thread: CpsFlowExecution[Owner[---]]
java.lang.StackOverflowError
at org.jenkinsci.plugins.workflow.actions.ErrorAction.isUnserializableException(ErrorAction.java:90)
at org.jenkinsci.plugins.workflow.actions.ErrorAction.isUnserializableException(ErrorAction.java:94)
--------------------------------------------------------------------------------------
i think the expected behaviour should be the pipeline must send stop executor statement in forcible abort too as it is leading us to the remote executor is not getting terminated and in pipelins steps i see that the node is still running
---
Originally reported by darshilshah, imported from: On aborting pipeline multiple times the pipeling gets status aborted but it is not completed yet
Raw content of original issue
I have created one pipeline in which i build multiple docker images in parallel with remote executor which deploys pod and inside the pod there is multiple containers running which will build the docker image and every docker image build is one step in pipeline , now the issue is that whenever i click abort manually more then 3-4 times means forcefully terminate the job , it sets status of pipeline aborted but some it don't send the remove remote executor signal so the remote executor node behind the scene stuck on running while i get this error in my jenkins logs :
2023-01-10 13:57:08.179+0000 [id=1623511] WARNING o.j.p.w.cps.CpsVmExecutorService#reportProblem: Unexpected exception in CPS VM thread: CpsFlowExecution[Owner[---]]
java.lang.StackOverflowError
at org.jenkinsci.plugins.workflow.actions.ErrorAction.isUnserializableException(ErrorAction.java:90)
at org.jenkinsci.plugins.workflow.actions.ErrorAction.isUnserializableException(ErrorAction.java:94)
--------------------------------------------------------------------------------------i think the expected behaviour should be the pipeline must send stop executor statement in forcible abort too as it is leading us to the remote executor is not getting terminated and in pipelins steps i see that the node is still running
Contributor guide
Research direction
Start with the workflow-cps-plugin handling around CpsVmExecutorService#reportProblem and the repeated StackOverflowError in ErrorAction.isUnserializableException. Reproduce repeated forceful aborts of parallel Docker-building pipeline steps, then verify that the remote executor is stopped and the pipeline does not remain running after reporting an aborted status.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java
- Domain
- ci-cd, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100