Improve history queue components shutdowns #5525
Merged
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?
History's timer and transfer queues are not handling shutdowns properly. This PR will make it slightly better but a proper handling of shutdowns will require bigger refactoring to ensure honoring process level shutdown deadline and ordering of Stop calls. We will most likely achieve that by integration with Fx at some point.
Changes:
QueueProcessorEnableGracefulSyncShutdown
dynamic config. Default is false. When set to truego Stop()
calls)Misc readability changes:
Why?
A recent bug shows that there are timer tasks left behind during failover. Handling
Stop()
s properly may prevent that from happening but will dig deeper on potential ack level consistency problems.How did you test it?
Set
QueueProcessorEnableGracefulSyncShutdown: true
in unit tests.Potential risks
Should be minimal but just to be on safe side put the changes behind dynamic config so we can slowly roll this out and rollback if we see issues.