Open starrysxy opened 2 months ago
This is not a bug. If you don't feel you need to make up on a certain day, you can choose to skip that date.
This is not a bug. If you don't feel you need to make up on a certain day, you can choose to skip that date.
I get you, but the real situation is more complex. Because, sometimes, I can't foresee which day I need to skip.
Consider this situation: After I submitted a task to make up from June 1st to June 30th in parallel mode, some other people told me there is something wrong with the data on June 10th, meanwhile, other data has no problem. Unfortunately, it will influence my compliment instance on June 10th. So I just want to stop the instance on June 10th.
But now after I stopped the instance on June 10, some other instances were not scheduled. I need to find out which dates' instances were not scheduled, and then re-run these unscheduled instances.
So I think this is a bug, because complement process instances executed in parallel should not influence each other.
This is not a bug. If you don't feel you need to make up on a certain day, you can choose to skip that date.
I get you, but the real situation is more complex. Because, sometimes, I can't foresee which day I need to skip.
Consider this situation: After I submitted a task to make up from June 1st to June 30th in parallel mode, some other people told me there is something wrong with the data on June 10th, meanwhile, other data has no problem. Unfortunately, it will influence my compliment instance on June 10th. So I just want to stop the instance on June 10th.
But now after I stopped the instance on June 10, some other instances were not scheduled. I need to find out which dates' instances were not scheduled, and then re-run these unscheduled instances.
So I think this is a bug, because complement process instances executed in parallel should not influence each other.
@SbloodyS I still think this is a bug. Maybe this scenario is not the best practice. But when someone do like this, they will be confused by the missing process instance.
This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.
This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.
Search before asking
What happened
When I run a workflow in parallel using the complement mode, I can't stop the process instances. If I do this, a few process instances will not be scheduled besides the instance I stop.
e.g.: scroll down and refer to How to reproduce please
I have check the code, process instances executed in parallel will be divided into queues according to the degree of parallelism. But, there is something wrong in
org.apache.dolphinscheduler.server.master.event.WorkflowStateEventHandler#handleStateEvent
method.When I stop one process instance, I get these logs:
The initial state and target state are both
{code=4, desc='ready stop'}
or{code=5, desc='stop'}
.I know the next complement command will be created in
org.apache.dolphinscheduler.server.master.runner.WorkflowExecuteRunnable#processComplementData
method.When
{code=4, desc='ready stop'}
, theprocessComplementData()
method will returnfalse
before create next complement command. And, when{code=5, desc='stop'}
, theprocessComplementData()
method will not be called, so there is also no next complement command.What you expected to happen
When I stop one complement process instance executed in parallel, other instances will not be influenced.
How to reproduce
Anything else
In my opinion, this is a bug, complement process instances executed in parallel should not influence each other.
If this is a bug, I am willing to try to fix it.
Version
dev
Are you willing to submit PR?
Code of Conduct