cong yang created GROOVY-11271: ---------------------------------- Summary: ConcurrentCommonCache causes memory leaks. Key: GROOVY-11271 URL: https://issues.apache.org/jira/browse/GROOVY-11271 Project: Groovy Issue Type: Bug Components: ast builder Affects Versions: 4.0.7 Reporter: cong yang
ConcurrentCommonCache uses a read-write lock to wrap CommonCache into a thread-safe data structure. However, CommonCache uses the underlying LinkedHashMap, which causes conflicts when using the LRU algorithm because the LinkedHashMap.get method modifies the internal linked list. This conflicts with the read lock used by the get method in ConcurrentCommonCache when multiple threads access it. Due to multithreading conflicts, the maximum cache size of 64 becomes ineffective, ultimately causing memory leaks. Additionally, we have already encountered memory leaks in our production environment. -- This message was sent by Atlassian Jira (v8.20.10#820010)