fix(): fixing memory leak in keys-source-task #53
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.
Fix memory leak in RedisKeysSourceTask
Problem
The
sourceOffsets
list inRedisKeysSourceTask
was continuously growing without ever being cleared, causing a memory leak in long-running connectors.Root Cause
commitRecord()
method added offsets to the list viaaddSourceOffset()
commit()
method was a no-op and never cleared the listSolution
sourceOffsets
field andaddSourceOffset()
methodcommitRecord()
to be a no-op with explanatory commentWhy This Is Safe
Unlike
RedisStreamSourceTask
, the keys source connector uses Redis keyspace notifications which are fire-and-forget events that don't require acknowledgment. TheRedisItemReader
inLIVE
mode handles state internally, making offset tracking unnecessary.Fixes memory leak in production deployments monitoring high-volume Redis key changes.