Merge pull request #4683 from BerriAI/litellm_dealloc_in_mem_cache

[Fix] Mem Util - De Reference when removing from in-memory cache
This commit is contained in:
Ishaan Jaff 2024-07-12 18:31:56 -07:00 committed by GitHub
commit eb342bbe2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -97,8 +97,15 @@ class InMemoryCache(BaseCache):
"""
for key in list(self.ttl_dict.keys()):
if time.time() > self.ttl_dict[key]:
self.cache_dict.pop(key, None)
self.ttl_dict.pop(key, None)
removed_item = self.cache_dict.pop(key, None)
removed_ttl_item = self.ttl_dict.pop(key, None)
# de-reference the removed item
# https://www.geeksforgeeks.org/diagnosing-and-fixing-memory-leaks-in-python/
# One of the most common causes of memory leaks in Python is the retention of objects that are no longer being used.
# This can occur when an object is referenced by another object, but the reference is never removed.
removed_item = None
removed_ttl_item = None
def set_cache(self, key, value, **kwargs):
print_verbose(