Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve non deterministic error when workflow fail and applying signal events #654

Open
longquanzheng opened this issue Nov 12, 2021 · 1 comment

Comments

@longquanzheng
Copy link
Collaborator

qlong@~: $cadence  wf query ....
Error: Query workflow failed.
Error Details: QueryFailedError{Message: java.lang.IllegalStateException: Signal received after workflow is closed.
	at com.uber.cadence.internal.replay.ReplayDecider.handleWorkflowExecutionSignaled(ReplayDecider.java:384)
	at com.uber.cadence.internal.replay.ReplayDecider.processEvent(ReplayDecider.java:206)
	at com.uber.cadence.internal.replay.ReplayDecider.decideImpl(ReplayDecider.java:472)
	at com.uber.cadence.internal.replay.ReplayDecider.query(ReplayDecider.java:619)
	at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.processQuery(ReplayDecisionTaskHandler.java:219)
	at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTaskImpl(ReplayDecisionTaskHandler.java:123)
	at com.uber.cadence.internal.replay.ReplayDecisionTaskHandler.handleDecisionTask(ReplayDecisionTaskHandler.java:86)
	at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:213)
	at com.uber.cadence.internal.worker.WorkflowWorker$TaskHandlerImpl.handle(WorkflowWorker.java:185)
	at com.uber.cadence.internal.worker.PollTaskExecutor.lambda$process$0(PollTaskExecutor.java:71)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
}
('export CADENCE_CLI_SHOW_STACKS=1' to see stack traces)
@longquanzheng
Copy link
Collaborator Author

Turns out this is not a bug. This is because of a non deterministic code change -- adding an activity in the workflow without using versioning. So during workflow replay fails with exception which marks the workflow as closed. As a result, applying signal fails at this error.

However, we should improve this error to make it more obvious about the Non deterministic error.

@longquanzheng longquanzheng changed the title [Bug] Query closed workflow that has signal at the final decision task completed Improve non deterministic error when workflow fail and applying signal events Nov 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant