conductor icon indicating copy to clipboard operation
conductor copied to clipboard

duplicated subworkflow in FORK_JOIN_DYNAMIC

Open hebrd opened this issue 1 year ago • 3 comments

Describe the bug two subworkflow were forked in FORK_JOIN_DYNAMIC. image

Details Conductor version: Persistence implementation: MySQL Queue implementation: Dynoqueues Lock: Local Workflow definition: Task definition: Event handler definition:

hebrd avatar Jun 19 '23 09:06 hebrd

I've got the same problem (duplications of subworkflow invocation) even without dynamic fork. I found out that problem lies directly in SUB_WORKFLOW task status flow. SubWorkflow changes state from SCHEDULED to IN_PROGRESS only when child workflow is started and it appears that the time between taking subworkflow task from the queue and switching its state to IN_PROGRESS is often enough for WorkflowRepairService to push this task on the queue again and start it. Only workaround that comes to my mind is to switch the repair service off (set conductor.workflow-repair-service.enabled property to false). Is it actually only solution to this problem? Wouldn't be better if SubWorkflow changed the state to IN_PROGRESS just after it's taken from the queue?

sebimal avatar Aug 24 '23 05:08 sebimal

After moving to v3.13.8 I've started getting this error when calling subworkflow in FORK_JOIN_DYNAMIC:

Workflow ${workflowid} is terminated because of Parent workflow has been terminated with reason: No dynamic tasks could be created for the Workflow: ${workflowname.id}, Dynamic Fork Task: ${taskname}/${taskreferencename}Attempted to create a duplicate task reference name: ${taskreferencename}

(comes from here)

But all the task descriptions I feed into the FORK_JOIN_DYNAMIC have a different taskreferencename (doublechecked it in several ways). Could this be related to this issue?

I use FORK_JOIN_DYNAMIC in several other workflows (but with simple tasks instead of call_sub_workflow) and this doesn't seem to happen there...

dcore94 avatar Oct 16 '23 09:10 dcore94

setting conductor.workflow-repair-service.enabled to false did not help...

dcore94 avatar Oct 16 '23 10:10 dcore94