tsdb: fix memory leaks in buffer pools#17879
Merged
aknuds1 merged 4 commits intoprometheus:mainfrom Jan 19, 2026
Merged
Conversation
90c1d1f to
7065296
Compare
7065296 to
f6b907f
Compare
Clear reference fields when returning buffers to pools to avoid retaining data after the buffer is reused. Affected pools: - refSeriesPool: clear Labels - histogramsPool: clear H pointer - floatHistogramsPool: clear FH pointer - metadataPool: clear Unit and Help strings Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
f6b907f to
6f08a7a
Compare
bboreham
reviewed
Jan 19, 2026
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
bboreham
reviewed
Jan 19, 2026
Member
bboreham
left a comment
There was a problem hiding this comment.
Note similar changes were done in #13712; the other pools were added since.
I don't think the tests are worth checking in and adding over a hundred lines of bulk. They are testing internal details of the implementation of something that is quite obvious.
And only covering half the pools.
Contributor
Author
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
bboreham
approved these changes
Jan 19, 2026
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.
Summary
refSeriesPool: clearLabelsfieldhistogramsPool: clearHpointerfloatHistogramsPool: clearFHpointermetadataPool: clearUnitandHelpstringsWithout these fixes, the pooled buffers retain references to data that should be garbage collected, causing memory to accumulate over time.
This established pattern, of clearing references before pool re-use, is already followed in
Head.putExemplarBuffer,Head.putSeriesBufferandHead.putTypeMap. The former two were fixed in #13712.Test plan