Issue with re-running workflows
Hi, I have a simple workfow defined with 4 steps and no signals. I set the reuse id policy to allow duplicates and after running the workflow the first time, if I attempt to restart the workflow with the cadence cli, it doesn't work. This is the exception trace on the worker thread:
Exception in thread Thread-4:
Traceback (most recent call last):
File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/Users/ganeshan.jayaraman/.local/share/virtualenvs/cadence_test-wYdWkn-S/lib/python3.7/site-packages/cadence/decision_loop.py", line 725, in run
decisions = self.process_task(decision_task)
File "/Users/ganeshan.jayaraman/.local/share/virtualenvs/cadence_test-wYdWkn-S/lib/python3.7/site-packages/cadence/decision_loop.py", line 762, in process_task
decisions: List[Decision] = decider.decide(decision_task.history.events)
File "/Users/ganeshan.jayaraman/.local/share/virtualenvs/cadence_test-wYdWkn-S/lib/python3.7/site-packages/cadence/decision_loop.py", line 462, in decide
self.process_decision_events(decision_events)
File "/Users/ganeshan.jayaraman/.local/share/virtualenvs/cadence_test-wYdWkn-S/lib/python3.7/site-packages/cadence/decision_loop.py", line 471, in process_decision_events
self.process_event(event)
File "/Users/ganeshan.jayaraman/.local/share/virtualenvs/cadence_test-wYdWkn-S/lib/python3.7/site-packages/cadence/decision_loop.py", line 488, in process_event
raise Exception(f"No event handler for event type {event.event_type.name}")
Exception: No event handler for event type DecisionTaskFailed
The command I used was
docker run --rm ubercadence/cli:master --address host.docker.internal:7933 --domain samples-domain workflow reset -w OR:9949881e-3c94-11ea-bc33-acde48001122 -r 8092a6e6-5ef4-4429-b54b-794de5fff680 --reset_type FirstDecisionCompleted --reason "some"
Is re-running workflows a supported use case for the python version and if so are there any other fixes to attempt to allow workflows to be executed again ?
DecisionTaskFailed isn't handled yet in the event_handlers dictionary - https://github.com/firdaus/cadence-python/blob/79367b74c1efff34a58c406c56f84883bf1e71ad/cadence/decision_loop.py
I'm actually not aware of what this workflow reset feature does behind the scenes, I'll need to study it first.