[
https://issues.apache.org/jira/browse/PIG-4603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14592467#comment-14592467
]
Mattias Jiderhamn commented on PIG-4603:
----------------------------------------
I have implemented a workaround (i.e. {{removeNotificationListener()}} for any
{{NotificationListener}} that may cause leaks) for this in my [ClassLoader Leak
Prevention library|https://github.com/mjiderhamn/classloader-leak-prevention].
I would be thankful if any users of Pig would care to build the library from
GitHub sources and test the workaround, before I make a release including this
fix.
> Classloader leak in SpillableMemoryManager
> ------------------------------------------
>
> Key: PIG-4603
> URL: https://issues.apache.org/jira/browse/PIG-4603
> Project: Pig
> Issue Type: Bug
> Affects Versions: 0.15.0
> Reporter: Gleb Smirnov
> Assignee: Rohini Palaniswamy
>
> In the constructor of {{SpillableMemoryManager}}, a {{NotificationListener}}
> is added to the {{MemoryMXBean}}. This listener is never removed, even if the
> application is re-deployed.
> This results in the instance {{SpillableMemoryManager}} being still reachable
> after a redeploy. This results in its class being reachable, which results in
> the classloader being reachable, along with all the classes in it.
> This leads to metaspace OutOfMemoryErrors.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)