pkg/chunkenc: fix leak of pool. (#1793)

Signed-off-by: johncming <johncming@yahoo.com>
pull/1797/head
johncming 5 years ago committed by GitHub
parent dac8615f39
commit 13c9a864c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      pkg/chunkenc/memchunk.go

@ -111,10 +111,15 @@ func (hb *headBlock) append(ts int64, line string) error {
func (hb *headBlock) serialise(pool WriterPool) ([]byte, error) {
inBuf := serializeBytesBufferPool.Get().(*bytes.Buffer)
defer func() {
inBuf.Reset()
serializeBytesBufferPool.Put(inBuf)
}()
outBuf := &bytes.Buffer{}
encBuf := make([]byte, binary.MaxVarintLen64)
compressedWriter := pool.GetWriter(outBuf)
defer pool.PutWriter(compressedWriter)
for _, logEntry := range hb.entries {
n := binary.PutVarint(encBuf, logEntry.t)
inBuf.Write(encBuf[:n])
@ -132,10 +137,6 @@ func (hb *headBlock) serialise(pool WriterPool) ([]byte, error) {
return nil, errors.Wrap(err, "flushing pending compress buffer")
}
inBuf.Reset()
serializeBytesBufferPool.Put(inBuf)
pool.PutWriter(compressedWriter)
return outBuf.Bytes(), nil
}

Loading…
Cancel
Save