curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ioannis Canellos (JIRA)" <>
Subject [jira] [Commented] (CURATOR-14) Memory leak in Curator watches
Date Fri, 12 Jul 2013 06:57:50 GMT


Ioannis Canellos commented on CURATOR-14:

A specific path can have more than one Watchers, so the path doesn't make a good key.

Ideally, the maps could be combined in one MultiMap<String, Watcher> with soft values,
but I couldn't find such implementation, So I used a Multimap<String,String> and a Cache<String,
Watcher> with soft values and used a UUID for correlation. I preferred Cache instead of
a second Map so that I can use a RemovalListener that would remove entries from the Multimap
when they are garbage collected from the Cache.

> Memory leak in Curator watches
> ------------------------------
>                 Key: CURATOR-14
>                 URL:
>             Project: Apache Curator
>          Issue Type: New Feature
>          Components: Recipes
>    Affects Versions: 2.0.0-incubating
>            Reporter: Brandon Beck
>            Priority: Minor
>         Attachments: CURATOR-14-dispatchingwatcher.patch, CURATOR-14-draft-2.patch, CURATOR-14-draft-3.patch,
> The JVM runs out of memory if you repetitively create a PathChildrenCache, start it then
immediately stop it.  It appears that the memory is taken up by a watch that isn't ever cleaned
up.  Curator attempts to do some pooling of watches, but doesn't seem to use the path in the

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message