set err to nil after ReadFull returns io.EOF#245
Merged
Conversation
When source size is multiple of block size, final io.ReadFull returns (0, io.EOF) `err` only cleared by `w.write` when `rn > 0` This broke io.Copy which uses dst.(io.ReaderFrom) shortcut, propagating io.EOF to caller
Contributor
Author
Contributor
Author
|
Alternatively not using implicit return variables here could be used. Personally I configure linting to prevent use of that feature |
serprex
commented
Apr 29, 2026
| @@ -222,6 +222,7 @@ func (w *Writer) ReadFrom(r io.Reader) (n int64, err error) { | |||
| switch err { | |||
| case nil: | |||
| case io.EOF, io.ErrUnexpectedEOF: // read may be partial | |||
Contributor
Author
There was a problem hiding this comment.
imo UnexpectedEOF should not be ignored, but that's a larger change of behavior predating recent regression
serprex
added a commit
to wal-g/wal-g
that referenced
this pull request
Apr 30, 2026
bumped in #2233 this regressed gp/cloudberry due to pierrec/lz4#245
Closed
Merged
debebantur
pushed a commit
to wal-g/wal-g
that referenced
this pull request
Jun 1, 2026
4.1.27 contains both pierrec/lz4#240 & pierrec/lz4#245 which are relevant when we're often compressing files with sizes that are a power of 2
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.
When source size is multiple of block size, final io.ReadFull returns (0, io.EOF)
erronly cleared byw.writewhenrn > 0This broke
io.Copywhich usesdst.(io.ReaderFrom)shortcut, propagatingio.EOFto callerRegression from #240