Orchestration execution goes into infinite loop when decisions.Count == 0
- Dominant language
- C#
- Stars
- 1.7k
- Forks
- 335
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 6
Description
(on vnext branch)
For whatever reason, in TaskOrchestrationDispatcher::OnProcessWorkItemAsync, if the runtime state indicates that it's still processing, but executes no events (aka, decisions.Count == 0), the orchestration never completes (successfully or not). Any new events that come in for that orchestration instance will get lost and never executed as isCompleted is never set to true.
Summary of what may have caused this:
- We have a long-running orchestration that does ContinueAsNew after a single event is processed
- An event was being processed by the orchestration, and a new event may have come in just as the orchestration was executing ContinueAsNew command
- Logging indicates that we did receive the ContinueAsNew with the new state being passed, however the orchestration execution did not complete and clear the runtime state.
To prevent this issue going forward, if decisions.Count == 0, a completed state needs to be determined, whether it's terminal or not is up to the team implementing.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.