-
Notifications
You must be signed in to change notification settings - Fork 7.1k
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
fix(core): Consider timeout in shutdown an error #8050
Merged
+21
−24
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we move this to a generic config variable, instead of having a worker specific one? it would be a breaking change, but we can add it in
BREAKING-CHANGES.md
. Since it will affect a very small minority of users, I think it should be okay.@krynble WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking whether it would make senes to have different timeouts by process type. Say 10 seconds for webhooks, 1 minute for mains and 2 minutes for workers, depending on the use case. Is it overkill?
If we use this approach, then we could have on "global default" value of 30 seconds but timers can be set separately.
Do we have any specific goals we're trying to achieve with this change other than changing this exit to a crash instead of successful? I'm fine to moving to a single global timeout as long as we continue supporting the old value for some time until users have a change to change, while sending a warning to the console.
I think relying solely on the breaking changes log isn't ideal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are couple reasons behind this change. First is that conceptually something timing out is an error. Second is that on successful exit we close down the DB connection gracefully. On an exit timeout we rather not do that, since it will wait for any active connections to close and would possible block the exit. I updated the PR description for better reasoning.
IMO it would make sense to have a more generic config for this. I don't think we have to create separate vars for separate process types, as they are separate deployments anyways and have different env vars. Uou can then define a different exit timeout value for each separately.
I can create a separate PR for adding a more generic config variable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Understood - makes sense. Thanks for clarifying.
About the generic variable, I strongly suggest we continue supporting the existing name to prevent breaking existing deployment, while warning users that the current environment variable has been deprecated and should be simply renamed, similar to how we did for deprecating MySQL.