The ZookeeperTestingServer was just a wrapper of the TestingServer

I changed the code to use the TestingServer.. and the code is stuck in the
while (printing lines in the system out)

The only difference is that I'm using curator 2.9...

On Thu, Jul 21, 2016 at 4:27 PM, Scott Blum <[email protected]> wrote:

> 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 <[email protected]> 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 <[email protected]>
>> 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 <[email protected]>
>>> 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 <[email protected]>
>>>> 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 <[email protected]>
>>>>> 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 <[email protected]>
>>>>>> 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 <[email protected]>
>>>>>>> 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 <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> I don't have the code handy, but have you tried TreeCache?
>>>>>>>>>
>>>>>>>>> On 14 Jul 2016 11:31 PM, "Alvaro Gareppe" <[email protected]>
>>>>>>>>> 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
>>>>>>>>>> [email protected]
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Ing. Alvaro Gareppe
>>>>>>> [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ing. Alvaro Gareppe
>>>>>> [email protected]
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Ing. Alvaro Gareppe
>>>>> [email protected]
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Ing. Alvaro Gareppe
>>> [email protected]
>>>
>>
>>
>


-- 
Ing. Alvaro Gareppe
[email protected]

Reply via email to