-
Notifications
You must be signed in to change notification settings - Fork 387
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
Use custom log writer for stdout/err in supervisor #2674
Merged
Merged
Conversation
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
6d8cd90
to
8da28f9
Compare
kke
reviewed
Feb 2, 2023
8da28f9
to
b4f2226
Compare
4 tasks
b4f2226
to
fa89caf
Compare
juanluisvaladas
previously approved these changes
Feb 3, 2023
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.
LGTM.
The io.Writer implementation provided by logrus refuses to write lines that are longer than 64k. An error is logged and the log pipe is closed. This will cause the stdout or stderr of the supervised process to be broken ("broken pipe"). Depending on the supervised process, the result may vary. At a minimum, k0s will no longer log anything from the affected processes. Some processes (e.g. the kubelet) will terminate themselves when trying to use stdout/stderr, resulting in a restart. Use a custom io.Writer instead. It will do pretty much the same thing as logrus's one, but it will chunk long lines into multiple log statements. Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>
fa89caf
to
46f816f
Compare
juanluisvaladas
approved these changes
Feb 6, 2023
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.
LGTM.
Successfully created backport PR for |
This was referenced Feb 7, 2023
16 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
backport/release-1.26
PR that needs to be backported/cherrypicked to release-1.26 branch
bug
Something isn't working
security fix
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
The
io.Writer
implementation provided by logrus refuses to write lines that are longer than 64k. An error is logged and the log pipe is closed. This will cause the stdout or stderr of the supervised process to be broken ("broken pipe"). Depending on the supervised process, the result may vary. At a minimum, k0s will no longer log anything from the affected processes. Some processes (e.g. the kubelet) will terminate themselves when trying to use stdout/stderr, resulting in a restart.Use a custom
io.Writer
instead. It will do pretty much the same thing as logrus's one, but it will chunk long lines into multiple log statements.See:
Type of change
How Has This Been Tested?
Checklist: