conductor-oss / conductor-oss/conductor

[FEATURE]: Multiple Task Update overlap with each other (Conductor + MySQL)

Open
#323 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
32.2k
Forks
1k
Avg merge
2d 3h
Merged PRs (30d)
37

Description

## Describe the Feature Request
Conductor + MySQL persistence

We are facing issue in conductor workflow orchestration where workflows are stuck in RUNNING state.

Reason is Worker's Task update overlaps with the previous worker update so workflows stayed as RUNNING state even after completed the processing

Scenario:
Consider we have two worker (worker1, worker2).

When worker1 completes its execution it call task update api. Conductor server receives the request and decider service decides there is worker2 to be scheduled. So worker2 scheduled and worker 1 task update is continue the processing. Within few milliseconds when worker2 also completes its execution then worker2 also call task update API.

In this scenario both Worker1 and Worker2 task updates are processing in parallel. Consider Worker2 task update first even before Worker1 task update. When Worker2 completes its processing then we see workflow moved to completed state. After that Worker1 task update updating workflow to Running state. This result in workflow stuck in running state forever.

## Describe Preferred Solution
In [mysql-persistence](https://github.com/conductor-oss/conductor/tree/main/mysql-persistence) library, we should accept workflow update only when workflows are in intermediate state. If workflow status moved to terminal state means then updates should be dropped.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.