diff --git a/app/vminsert/common/lines_reader.go b/app/vminsert/common/lines_reader.go index 4f28bf845..17c620d42 100644 --- a/app/vminsert/common/lines_reader.go +++ b/app/vminsert/common/lines_reader.go @@ -20,7 +20,6 @@ const defaultBlockSize = 64 * 1024 // // Returns (dstBuf, tailBuf). func ReadLinesBlock(r io.Reader, dstBuf, tailBuf []byte) ([]byte, []byte, error) { - origDstBufLen := len(dstBuf) if cap(dstBuf) < defaultBlockSize { dstBuf = bytesutil.Resize(dstBuf, defaultBlockSize) } @@ -33,7 +32,7 @@ again: if err == nil { return dstBuf, tailBuf, fmt.Errorf("no forward progress made") } - if err == io.EOF && len(dstBuf) > origDstBufLen { + if err == io.EOF && len(dstBuf) > 0 { // Missing newline in the end of stream. This is OK, /// so suppress io.EOF for now. It will be returned during the next // call to ReadLinesBlock. diff --git a/app/vminsert/common/lines_reader_test.go b/app/vminsert/common/lines_reader_test.go index 6c3d304c3..d0386fd13 100644 --- a/app/vminsert/common/lines_reader_test.go +++ b/app/vminsert/common/lines_reader_test.go @@ -79,6 +79,7 @@ func TestReadLineBlockSuccessSingleByteReader(t *testing.T) { f("\nfoo", "", "") f("foo\nbar", "foo", "") f("foo\nbar\nbaz", "foo", "") + f("foo", "foo", "") // The maximum line size b := make([]byte, maxLineSize+10)