fix: KeyQueryMetadata not available on Pull query after stream is created #6633
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.
Description
Fixes #6249
A KeyQueryMetadata.NOT_AVAILABLE is usually caused when resources (hosts/streams) are not ready to access the state store. You can see this error when executing a pull query right after the stream is created. It takes some time for the streams to create the materialization in all the hosts.
To fix this issue, the clients must retry the pull query after some time in order to access the state store. This PR allows clients to retry requests that are marked as
ERROR_CODE_RESOURCE_NOT_READY
for a maximum number of retries and for some waiting time between retries.By default, a request will wait for 500ms between retries and up to 10 retries. Users can configure this with the following config:
Testing done
Describe the testing strategy. Unit and integration tests are expected for any behavior changes.
Reviewer checklist