reele opened a new issue, #17030:
URL: https://github.com/apache/dolphinscheduler/issues/17030

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue) and 
found no similar issues.
   
   
   ### What happened
   
   when a task has a lot of predecessors, and they all finished in short time, 
`TopologyLogicalTransitionEvent` may  published multi times in same time, 
before the first `TaskStartLifecycleEvent` handled, there will be a lot 
TaskStartLifecycleEvent in queue to handling.
   
   ### What you expected to happen
   
   ...
   
   ### How to reproduce
   
   
   
![Image](https://github.com/user-attachments/assets/e47b86c3-bd19-4ded-98db-ee1dbb7b1aaa)
   
   a part of the log
   
   ```log
   ...
   
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L1*]_41t TaskSuccessLifecycleEvent{task=[*Task-L1*]_41t, endTime=Wed Feb 
26 09:39:24 CST 2025, varPool='null'} with state RUNNING_EXECUTION
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.w.l.h.AbstractWorkflowLifecycleEventHandler:[47] - Begin fire 
workflow dup-wf-20250226093922435 
LifecycleEvent[WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent{task=[*Task-L1*]_2rxtaskState=SUCCESS}]
 with state: RUNNING_EXECUTION
   
   
   ******* here the 
WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent was called 
several times  *******
   
   
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskStartLifecycleEvent{task=[*Task-L2*]}
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.w.l.h.AbstractWorkflowLifecycleEventHandler:[52] - Fired workflow 
dup-wf-20250226093922435 
LifecycleEvent[WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent{task=[*Task-L1*]_2rxtaskState=SUCCESS}]
 with state: RUNNING_EXECUTION
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.w.l.h.AbstractWorkflowLifecycleEventHandler:[47] - Begin fire 
workflow dup-wf-20250226093922435 
LifecycleEvent[WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent{task=[*Task-L1*]taskState=SUCCESS}]
 with state: RUNNING_EXECUTION
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskStartLifecycleEvent{task=[*Task-L2*]}
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.w.l.h.AbstractWorkflowLifecycleEventHandler:[52] - Fired workflow 
dup-wf-20250226093922435 
LifecycleEvent[WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent{task=[*Task-L1*]taskState=SUCCESS}]
 with state: RUNNING_EXECUTION
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.194 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.w.l.h.AbstractWorkflowLifecycleEventHandler:[47] - Begin fire 
workflow dup-wf-20250226093922435 
LifecycleEvent[WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent{task=[*Task-L1*]_41ttaskState=SUCCESS}]
 with state: RUNNING_EXECUTION
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.195 INFO  
[ds-workflow-eventbus-worker-6] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskStartLifecycleEvent{task=[*Task-L2*]}
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.195 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.w.l.h.AbstractWorkflowLifecycleEventHandler:[52] - Fired workflow 
dup-wf-20250226093922435 
LifecycleEvent[WorkflowTopologyLogicalTransitionWithTaskFinishLifecycleEvent{task=[*Task-L1*]_41ttaskState=SUCCESS}]
 with state: RUNNING_EXECUTION
   
   
   ******* here the TaskDispatchLifecycleEvent was published 3 times  *******
   
   
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.199 INFO  
[ds-workflow-eventbus-worker-6] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskDispatchLifecycleEvent{task=[*Task-L2*]}
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.199 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskStartLifecycleEvent{task=[*Task-L2*]} with state 
SUBMITTED_SUCCESS
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskDispatchLifecycleEvent{task=[*Task-L2*]}
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskStartLifecycleEvent{task=[*Task-L2*]} with state 
SUBMITTED_SUCCESS
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskDispatchLifecycleEvent{task=[*Task-L2*]}
   
   
   
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskStartLifecycleEvent{task=[*Task-L2*]} with state 
SUBMITTED_SUCCESS
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskDispatchLifecycleEvent{task=[*Task-L2*]} with state 
SUBMITTED_SUCCESS
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskDispatchLifecycleEvent{task=[*Task-L2*]} with state 
SUBMITTED_SUCCESS
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.200 INFO  
[ds-workflow-eventbus-worker-6] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskDispatchLifecycleEvent{task=[*Task-L2*]} with state 
SUBMITTED_SUCCESS
   
   
   
   [WI-0][TI-0] - 2025-02-26 09:39:24.215 INFO  
[MasterRpcServer-methodInvoker-1] o.a.d.s.m.e.WorkflowEventBus:[41] - Publish 
event: TaskDispatchedLifecycleEvent{task=[*Task-L2*], 
executorHost='10.0.6.23:1234'}
   [WI-4025052][TI-0] - 2025-02-26 09:39:24.307 INFO  
[ds-workflow-eventbus-worker-28] 
o.a.d.s.m.e.t.l.h.AbstractTaskLifecycleEventHandler:[47] - Fired task 
[*Task-L2*] TaskDispatchedLifecycleEvent{task=[*Task-L2*], 
executorHost='10.0.6.23:1234'} with state SUBMITTED_SUCCESS
   
   ...
   ```
   
   ### Anything else
   
   i think there
   
   
https://github.com/apache/dolphinscheduler/blob/d8506925dd12c110b228884aaa5c49dad416aa93/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/workflow/statemachine/AbstractWorkflowStateAction.java#L68-L75
   
   should add a filter
   
   ``` java
   .filter((successor) -> 
!workflowExecutionGraph.isTaskExecutionRunnableActive(successor))
   ```
   
   to prevent to get the same `TaskExecutionRunnable` in following calls of 
`triggerTasks`
   
   ### Version
   
   dev
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to