diff options
author | Madelyn Olson <34459052+madolson@users.noreply.github.com> | 2021-04-19 22:16:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-19 22:16:27 -0700 |
commit | c73b4ddfd96d00ed0d0fde17953ce63d78bc3777 (patch) | |
tree | 2de45f1e248ff881a03440e6b870fa173d2d2fa3 /src | |
parent | c2aff4c74493b921b1ad6868902ba68d647cc1c8 (diff) | |
download | redis-c73b4ddfd96d00ed0d0fde17953ce63d78bc3777.tar.gz |
Fix memory leak when doing lazyfreeing client tracking table (#8822)
Interior rax pointers were not being freed
Diffstat (limited to 'src')
-rw-r--r-- | src/lazyfree.c | 5 | ||||
-rw-r--r-- | src/server.h | 1 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/lazyfree.c b/src/lazyfree.c index f18b2027f..a2cf2c3ed 100644 --- a/src/lazyfree.c +++ b/src/lazyfree.c @@ -39,12 +39,11 @@ void lazyfreeFreeSlotsMap(void *args[]) { atomicIncr(lazyfreed_objects,len); } -/* Release the rax mapping Redis Cluster keys to slots in the - * lazyfree thread. */ +/* Release the key tracking table. */ void lazyFreeTrackingTable(void *args[]) { rax *rt = args[0]; size_t len = rt->numele; - raxFree(rt); + freeTrackingRadixTree(rt); atomicDecr(lazyfree_objects,len); atomicIncr(lazyfreed_objects,len); } diff --git a/src/server.h b/src/server.h index d35eaa425..a2a722c6d 100644 --- a/src/server.h +++ b/src/server.h @@ -1911,6 +1911,7 @@ void disableTracking(client *c); void trackingRememberKeys(client *c); void trackingInvalidateKey(client *c, robj *keyobj); void trackingInvalidateKeysOnFlush(int async); +void freeTrackingRadixTree(rax *rt); void freeTrackingRadixTreeAsync(rax *rt); void trackingLimitUsedSlots(void); uint64_t trackingGetTotalItems(void); |