Repository navigation
feat(agent): Handle signals and shutdown gracefully - #5914
Merged
Merged
Conversation
This change allows the agent to handle common shutdown signals like interrupt, hangup and terminate and initiate a graceful shutdown. As long as terraform providers initiate graceful shutdowns via the aforementioned signals, things like SSH connections will be closed immediately on shutdown instead of being left hanging/timing out due to the agent being abruptly killed. Refs: #4677, #5901
mafredri
commented
Jan 30, 2023
Comment on lines
+57
to
+62
| logWriter := &lumberjack.Logger{ | ||
| Filename: filepath.Join(os.TempDir(), "coder-agent-init.log"), | ||
| MaxSize: 5, // MB | ||
| } | ||
| defer logWriter.Close() | ||
| logger := slog.Make(sloghuman.Sink(cmd.ErrOrStderr()), sloghuman.Sink(logWriter)).Leveled(slog.LevelDebug) |
Member
Author
There was a problem hiding this comment.
This change might not actually be needed, but it feels safer than having both PID 1 and the forked process share an opened file.
mtojek
approved these changes
Jan 30, 2023
mtojek
left a comment
Member
There was a problem hiding this comment.
It's sad that we can't put a unit test here in case somebody will try to refactor it in the future. Apart from this, LGTM.
deansheather
approved these changes
Jan 30, 2023
This file contains hidden or 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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This change allows the agent to handle common shutdown signals like
interrupt, hangup and terminate and initiate a graceful shutdown.
As long as terraform providers initiate graceful shutdowns via the
aforementioned signals, things like SSH connections will be closed
immediately on shutdown instead of being left hanging/timing out due to
the agent being abruptly killed.
Refs: #4677, #5901