[Pause] Reject queries when workflow is paused #8681
+92
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changed?
Why?
Executing queries on a paused workflow may not provide the updated results since the server withholds events from the worker when a workflow is paused. This breaks the current expectation of read-after-write semantics of Query API. Ex: When a client sends a signal to the workflow and follows up with a query, the expectation is that the query result includes the effect of the signal. But for a paused workflow that guarantee cannot be provided. So we are failing the queries in a paused workflow for now.
How did you test it?
Note
Queries against paused workflows now return QueryRejected with PAUSED status; adds a functional test to validate behavior.
service/history/api/queryworkflow/api.go: WhenmutableStateStatusisWORKFLOW_EXECUTION_STATUS_PAUSED, returnQueryRejectedwith statusPAUSED.tests/pause_workflow_execution_test.go: AddTestQueryWorkflowWhenPausedto verify querying a paused workflow returnsQueryRejectedwithPAUSEDstatus.Written by Cursor Bugbot for commit 0f9a838. This will update automatically on new commits. Configure here.