Quiet ESI streaming gunzip zero-output logs#13171
Open
bneradt wants to merge 1 commit into
Open
Conversation
ESI streaming gunzip can receive valid gzip chunks that consume input without producing output, such as an initial header-only chunk. Those chunks currently emit a `buf below zero` error even though the stream continues successfully, which creates noisy Traffic Server logs. This treats zero-output progress as normal streaming inflate behavior and reserves error logging for actual zlib failures. It also extends the ESI gzip unit test support to capture error logs and covers the header-only chunk case.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR reduces noisy ESI streaming gunzip error logging by treating zero-output inflate progress as normal streaming behavior, while preserving error logging for actual zlib failures. It also adds unit-test coverage for a header-only gzip chunk.
Changes:
- Updates streaming inflate logic to avoid logging errors when input is consumed without producing output.
- Adds fake error-log capture support for ESI unit tests.
- Adds a gzip streaming test for the header-only chunk case.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
plugins/esi/lib/EsiGunzip.cc |
Adjusts streaming inflate handling and zlib error reporting. |
plugins/esi/test/print_funcs.cc |
Adds fake error-log capture support for tests. |
plugins/esi/test/gzip_test.cc |
Adds coverage for zero-output gzip streaming chunks. |
shukitchan
approved these changes
May 20, 2026
Contributor
|
This looks fine. Thanks. |
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
ESI streaming gunzip can receive valid gzip chunks that consume input
without producing output, such as an initial header-only chunk. Those
chunks currently emit a
buf below zeroerror even though the streamcontinues successfully, which creates noisy Traffic Server logs.
This treats zero-output progress as normal streaming inflate behavior
and reserves error logging for actual zlib failures. It also extends the
ESI gzip unit test support to capture error logs and covers the
header-only chunk case.