You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Jordan Zimmerman (JIRA)" <ji...@apache.org> on 2016/01/11 19:00:42 UTC

[jira] [Closed] (CURATOR-286) Memory leak in service discovery

     [ https://issues.apache.org/jira/browse/CURATOR-286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jordan Zimmerman closed CURATOR-286.
------------------------------------
       Resolution: Fixed
         Assignee: Jordan Zimmerman
    Fix Version/s: 3.0.0

In ZooKeeper 3.4.x there is no way to clear a watcher once it is set. This has been addressed in ZooKeeper 3.5.x and Curator 3.0.0. When using Curator 3.0.x with ZooKeeper 3.5.x the various Curator recipes remove any watchers when the recipe instances are closed.

> Memory leak in service discovery
> --------------------------------
>
>                 Key: CURATOR-286
>                 URL: https://issues.apache.org/jira/browse/CURATOR-286
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Recipes
>    Affects Versions: 2.9.1
>            Reporter: Joe Littlejohn
>            Assignee: Jordan Zimmerman
>            Priority: Critical
>             Fix For: 3.0.0
>
>         Attachments: ServiceCacheLeakTester.java, curator-286.hprof.tar.gz
>
>
> Hi
> I'm seeing a memory leak in my application which makes use of service discovery.
> I've taken heap dumps and I see:
> * Hundreds of thousands of NamespaceWatcher instances. The client, actualWatcher and curatorWatcher fields are all null, so these are closed NamespaceWatchers.
> * Thousands of PathChildrenCache instances. Each one has a 'path' value that refers to one of the services I'm lookup up (using a service provider). The state fields shows that all these PathChildrenCache instances are CLOSED.
> In my application I'm using a service provider to get an instance, then closing that service provider. It seems that even after doing this, there's still a reference to the NamespaceWatcher held in ZKWatchManager field childWatches.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)