[BUG] many dependent tasks depend on a node, task status bug
See original GitHub issueDescribe the bug When many dependent tasks depend on a node and the dependent task supports failed retry, the task that submitted the retry will be judged as kill. causes process instance to fail.
I think, no need to verify process strategy when submitting tasks.
The method updateProcessInstanceState of the MasterExecThread class has been verify process strategy.
private void updateProcessInstanceState() {
ExecutionStatus state = getProcessInstanceState();
if(processInstance.getState() != state){
private ExecutionStatus getProcessInstanceState(){
ProcessInstance instance = processService.findProcessInstanceById(processInstance.getId());
ExecutionStatus state = instance.getState();
if(activeTaskNode.size() > 0){
return runningState(state);
}
// process failure
if(processFailed()){
return ExecutionStatus.FAILURE;
}
private Boolean processFailed(){
if(hasFailedTask()) {
if(processInstance.getFailureStrategy() == FailureStrategy.END){
return true;
}
if (processInstance.getFailureStrategy() == FailureStrategy.CONTINUE) {
return readyToSubmitTaskList.size() == 0 || activeTaskNode.size() == 0;
}
}
return false;
}
Which version of Dolphin Scheduler: -[1.2.0-preview]
Issue Analytics
- State:
- Created 4 years ago
- Comments:15 (15 by maintainers)
Top Results From Across the Web
[Bug] [dependent node] Dependent nodes are always blocked
The reason is that all WorkflowExecuteThread share the same taskRetryCheckList and dependent task checking rely on the taskRetryCheckList . When ...
Read more >[GitHub] [incubator-dolphinscheduler] lenboo commented on issue ...
[GitHub] [incubator-dolphinscheduler] lenboo commented on issue #2112: [BUG] many dependent tasks depend on a node, task status bug.
Read more >Define, capture, triage, and manage software bugs in Azure ...
Define, capture, and triage bugs and code defects to manage technical debt and maintain software quality.
Read more >Full Text Bug Listing - Red Hat Bugzilla
Created a distribute volume with 3 bricks of each node and start it. 2. Stopped glusterd on other two node and check the...
Read more >Recursive Promise chaining with tasks depending on each other
You have to execute a number of tasks. A task is just any function (usually async). Some tasks can depend on each other....
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@lenboo The problem is the trigger point for the “strategy end”. I think the responsibilities should be clear. When submitting tasks, the task processing thread should only care about the state of the process instance. MasterExecThread controls the main process, and to check the “strategy end”. Unified caliber, instead of checking “strategy end” everywhere.
This is also the purpose of updating the process status before submitting the task.
Already fixed in 2.x