[
https://issues.apache.org/jira/browse/CURATOR-286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Littlejohn updated CURATOR-286:
-----------------------------------
Description:
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.
was:
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
(and this refers to the the PathChildrenCache.
> 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
> Priority: Critical
> 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)