curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Blum <dragonsi...@gmail.com>
Subject Re: PathChildrenCache creates the node if not present
Date Thu, 21 Jul 2016 19:27:43 GMT
On 2.11 I see the same thing, the hang depends only on closing the ZK
server.  I don't see the TreeCache threads running.

On Thu, Jul 21, 2016 at 3:26 PM, Scott Blum <dragonsinth@gmail.com> wrote:

> Hi Alvaro, I ran your example but I wasn't able to reproduce the problem
> you're seeing on master.  What exact version of Curator are you running?
>
> I did have to make one change, though.  I don't have a  com.sac.panorama.
> zookeeper.server.junitserver.ZookeeperTestingServer, so I replaced it
> with a org.apache.curator.test.TestingServer.  When I ran through your
> example, I found it DID hang, but not where you said.  In my run, TreeCache
> shutdown cleanly and the thread disappeared, but then main() refused to
> exit because the ZK test server was still running.  Add a zk.close() to the
> end of main() allowed it to shutdown cleanly.  I'll try this on 2.11.
>
> On Thu, Jul 21, 2016 at 2:45 PM, Alvaro Gareppe <agareppe@gmail.com>
> wrote:
>
>> This is the case:
>> There is not evan a listener defined ( not needed to reproduce the
>> problem)
>> If you see there.. the "Curator-TreeCache-0" is running even the
>> tc.close() is already called.
>> This code runs forever,
>>
>> *package* com.sac.panorama.zookeeper.examples;
>>
>>
>>
>> *import* java.util.Set;
>>
>>
>>
>> *import* org.apache.curator.framework.CuratorFramework;
>>
>> *import* org.apache.curator.framework.CuratorFrameworkFactory;
>>
>> *import* org.apache.curator.framework.recipes.cache.TreeCache;
>>
>> *import* org.apache.curator.retry.RetryForever;
>>
>>
>>
>> *import*
>>  com.sac.panorama.zookeeper.server.junitserver.ZookeeperTestingServer;
>>
>>
>>
>> *public* *class* DataWatcherCuratorExample {
>>
>>
>>
>>     *public* *static* *void* main(String[] args) *throws* Exception {
>>
>>         ZookeeperTestingServer zk;
>>
>>         zk = *new* ZookeeperTestingServer();
>>
>>         zk.doStart();
>>
>>         CuratorFramework connection = CuratorFrameworkFactory.*newClient*
>> (zk.getConnectString(),
>>
>>                         *new* RetryForever(10000));
>>
>>
>>
>>         connection.start();
>>
>>
>>
>>
>>
>>         connection.create().forPath("/test");
>>
>>         TreeCache tc = TreeCache.*newBuilder*(connection, "/test"
>> ).setCacheData(*false*).setMaxDepth(1)
>>
>>                         .setCreateParentNodes(*false*).build();
>>
>>
>>
>>         *if* (*isThreadRunning*()) {
>>
>>             *throw* *new* RuntimeException("");  // this is not thrown
>> [OK]
>>
>>         }
>>
>>
>>
>>         tc.start();
>>
>>
>>
>>         tc.close();
>>
>>
>>
>>         System.*out*.println();
>>
>>
>>
>>         *while*(*isThreadRunning*()) {  // this runns forever cause the
>> thread "Curator-TreeCache" is not stopped after close
>>
>>             Thread.*sleep*(1000);
>>
>>             System.*out*.println("");
>>
>>         }
>>
>>
>>
>>         connection.close();
>>
>>     }
>>
>>
>>
>>     *private* *static* *boolean* isThreadRunning() {
>>
>>         Set<Thread> runningThreads = Thread.*getAllStackTraces*
>> ().keySet();
>>
>>         *boolean* threadFound = *false*;
>>
>>         *for* (Thread thread : runningThreads) {
>>
>>             *if* (thread.getName().startsWith("Curator-TreeCache") &&
>> thread.isAlive()) {
>>
>>                 threadFound = *true*;
>>
>>             }
>>
>>         }
>>
>>         *return* threadFound;
>>
>>     }
>>
>> }
>>
>> On Thu, Jul 21, 2016 at 2:48 PM, Scott Blum <dragonsinth@gmail.com>
>> wrote:
>>
>>> What's the thread doing?  Can you grab a stack trace to see where it's
>>> hung?
>>> That thread is only used to publish events out to clients, maybe the
>>> thread is hung in client code?
>>>
>>> On Thu, Jul 21, 2016 at 9:26 AM, Alvaro Gareppe <agareppe@gmail.com>
>>> wrote:
>>>
>>>> I just did the upgrate to the version 2.11 and the issue is still
>>>> there. I still see the Curator-TreeCache-X after the TreeCache is
>>>> closed.
>>>> Any ideas ?
>>>>
>>>> On Thu, Jul 21, 2016 at 9:22 AM, Alvaro Gareppe <agareppe@gmail.com>
>>>> wrote:
>>>>
>>>>> Do you know if there is a thread issue with the TreeCache? Cause after
>>>>> I call cache.close() the Curator-TreeCache-X thread is still alive.
>>>>>
>>>>> On Tue, Jul 19, 2016 at 1:33 PM, Alvaro Gareppe <agareppe@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I changed the PathChildrenCache to TreeCache depth=1 and worked OK.
>>>>>>
>>>>>> Thanks guys!
>>>>>>
>>>>>> On Fri, Jul 15, 2016 at 6:03 PM, Scott Blum <dragonsinth@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> TreeCache is read-only unless you specifically ask it to create
the
>>>>>>> root node.  Use depth=1 to watch only a single node.
>>>>>>>
>>>>>>> On Thu, Jul 14, 2016 at 5:46 PM, Cameron McKenzie <
>>>>>>> cammckenzie@apache.org> wrote:
>>>>>>>
>>>>>>>> I don't have the code handy, but have you tried TreeCache?
>>>>>>>>
>>>>>>>> On 14 Jul 2016 11:31 PM, "Alvaro Gareppe" <agareppe@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Is there a way to avoid the node creation on PathChildrenCache
>>>>>>>>> start() ?
>>>>>>>>>
>>>>>>>>> I have this case
>>>>>>>>>
>>>>>>>>> 1.- There is no node in ZK
>>>>>>>>> 2.- I do this:
>>>>>>>>>          cp = new PathChildrenCache(conn, "/a",
>>>>>>>>> PathChildrenCache.CACHE_PATH_ONLY);
>>>>>>>>>          cp.start()
>>>>>>>>> 3.- now I have a node /a in ZK
>>>>>>>>>
>>>>>>>>> Im using the pathCache in a different thread (and possibly
>>>>>>>>> different server) of the node creation, so I would like
to have an option
>>>>>>>>> where the node is not created, so it does nothing or
throws and exception
>>>>>>>>> in that case (both works for me).
>>>>>>>>>
>>>>>>>>> Is there some way to configure the PathChildrenCache
to do so ?
>>>>>>>>>
>>>>>>>>> I'm using curator version: 2.9.1
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Ing. Alvaro Gareppe
>>>>>>>>> agareppe@gmail.com
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ing. Alvaro Gareppe
>>>>>> agareppe@gmail.com
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Ing. Alvaro Gareppe
>>>>> agareppe@gmail.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Ing. Alvaro Gareppe
>>>> agareppe@gmail.com
>>>>
>>>
>>>
>>
>>
>> --
>> Ing. Alvaro Gareppe
>> agareppe@gmail.com
>>
>
>

Mime
View raw message