release-2.1: storage: clear *cmd references in cmdQ buffers before re-use #42961
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.
This PR contains two commits that attempt to avoid indefinitely retaining references to large graphs of
*cmd
objects in theCommandQueue
and preventing them from being GCed.storage: don't let cmdQ buffers grow without bound
This commit places a limit on the size of the overlaps buffer than the CommandQueue uses to avoid repeat allocations in getOverlaps. It's risky to allow this buffer to grow without bounds and never be reclaimed.
storage: clear *cmd references in cmdQ buffers before re-use
This commit ensures that the *cmd references in the overlaps buffer that the CommandQueue uses to avoid repeat allocations are cleared after use. This prevents the buffer from accidentally holding references to *cmd objects and preventing them from being GCed.