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

Sean-Michael Lewis commented on CURATOR-50:
-------------------------------------------

I will try to submit a patch for this this week if the proposed solution sounds 
ok. 

An alternative solution would be to, I could have the framework create "/" 
(excluding namespace) on {code}CuratorFrameworkImpl.start(){code}.
                
> CreateBuilderImpl fails on forPath if connectString features a chroot that 
> does not already exist.
> --------------------------------------------------------------------------------------------------
>
>                 Key: CURATOR-50
>                 URL: https://issues.apache.org/jira/browse/CURATOR-50
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 2.1.0-incubating
>            Reporter: Sean-Michael Lewis
>            Priority: Minor
>
> When a CuratorFramework is initialized with a connectString featuring a 
> chroot that does not already exist in the ensemble, CreateBuilderImpl will 
> fail to create new nodes even if createParentsIfNeeded is true.
> For example, the following code will result in a 
> org.apache.zookeeper.KeeperException$NoNodeException.
> {code}
> CuratorFramework client = 
> CuratorFramework.builder().retryPolicy(myPolicy).connectString("myServer1:2181,myServer2:2181/chroot).build();
> client.create().createParentsIfNeeded().forPath("test");
> {code}
> This can be worked around by using a namespace in lieu of the chroot or by 
> calling {code}client.create().forPath("/"){code} before attempting to create 
> any other nodes. 
> While using namespaces is likely the best practice, the framework does 
> initialize with the chroot connectString. There are also reasons why one 
> might want to use both chroot connectStrings as well as namespaces 
> (application environments for the former, application for the latter).
> My proposed fix is to alter {code}ZkPaths.mkdirs{code} to not skip "/" when 
> it walks the tree. In cases where no chroot configured or a chroot that 
> already exists, the node will be found and skipped. Otherwise, it will be 
> created.

--
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: http://www.atlassian.com/software/jira

Reply via email to