[ 
https://issues.apache.org/jira/browse/GROOVY-11271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17804211#comment-17804211
 ] 

Daniel Sun commented on GROOVY-11271:
-------------------------------------

The fastest way to fix the issue is abandoning the usage of read lock and use 
write lock instead.

> 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
>            Priority: Critical
>
> 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)

Reply via email to