[ 
https://issues.apache.org/jira/browse/CURATOR-268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14941578#comment-14941578
 ] 

Jordan Zimmerman commented on CURATOR-268:
------------------------------------------

We've talked about this kind of thing before. What about this...

Add quietly() to the delete() chain, and orUpdate() to the create() chain so 
you could do:

{code}
client.delete().quietly().forPath(foo);
client.create().orUpdate().forPath(foo, data);
{code}

Does getData() need an addition?

> Curator client doesn't behave well when it loses connection: CRUD operation 
> fail
> --------------------------------------------------------------------------------
>
>                 Key: CURATOR-268
>                 URL: https://issues.apache.org/jira/browse/CURATOR-268
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 2.7.1, 2.9.0
>            Reporter: Benjamin Jaton
>            Priority: Critical
>         Attachments: TestCuratorSaveConnLoss.java
>
>
> I am doing a basic stress test :
> - a TestingServer that keeps restarting in one thread
> - a Curator client that keeps creating/deleting a node in another
> After a few seconds, ether the create or the delete fail:
> {code}Thu Oct 01 15:35:10 PDT 2015 - Node /test has successfully been removed.
> Thu Oct 01 15:35:10 PDT 2015 - Recreating /test
> Thu Oct 01 15:35:10 PDT 2015 - Restarting server...
> Thu Oct 01 15:35:14 PDT 2015 - Restarting server...
> Thu Oct 01 15:35:15 PDT 2015 - ERROR: node should be removed.
> Thu Oct 01 15:35:15 PDT 2015 - Data of node is: test
> Node has been mysteriously created...
> org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode = 
> NodeExists for /test
>       at org.apache.zookeeper.KeeperException.create(KeeperException.java:123)
>       at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
>       at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1209)
>       at 
> org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:720)
>       at 
> org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:703)
>       at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:107)
>       at 
> org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:700)
>       at 
> org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:477)
>       at 
> org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:467)
>       at 
> org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:44)
>       at TestCuratorSaveConnLoss$3.run(TestCuratorSaveConnLoss.java:87){code}
> The create shouldn't fail, we're within 5 seconds of the create and the 
> connection timeout is 10 secs.
> This is surprising as this basic scenario is - AFAIK - the reason Curator 
> exists in the first place.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to