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 Tue, 04 Jun 2013 18:27:21 GMT


Ioannis Canellos commented on CURATOR-14:

> I wonder if we could hide the WatcherMap altogether inside of Curator. Extend with usingWatcher()
semantics to take a WatcherKey instance.

This would be great. I've experimented with this approach, between the drafts. The problem
I run into is that if we have the recipes being completely WatcherMap agnostic, then we can't
benefit from close/stop methods that most recipes have and are a good place for returning
the "Watcher" back to the pool. So we would have to rely on releasing the Watcher only when
fired and I am not sure if this is ideal. An other approach would be to have some short of
lifecycle methods on the "WatcherKey" that we could use to release the watcher without referencing
the WatcherMap.

> 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-draft-2.patch, CURATOR-14-draft-3.patch, CURATOR-14.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