xavipen opened a new issue #6921:
URL: https://github.com/apache/pulsar/issues/6921


   #### Expected behavior
   
   There should be no exception
   
   #### Actual behavior
   
   When running the PulsarStandalone for unit test with maven + testNG on a 
windows machine the following exception appears.
   
   `
   2020-05-08 13:13:11,975 [main]               WARN  
.b.c.ConfigurationCacheService Failed to create failure-domain znode 
/admin/clusters/standalone/failureDomain 
   java.lang.IllegalArgumentException: Path must start with / character
        at org.apache.zookeeper.common.PathUtils.validatePath(PathUtils.java:51)
        at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1090)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient.access$2301(ZooKeeperClient.java:70)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient$13.call(ZooKeeperClient.java:830)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient$13.call(ZooKeeperClient.java:824)
        at 
org.apache.bookkeeper.zookeeper.ZooWorker.syncCallWithRetries(ZooWorker.java:140)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient.exists(ZooKeeperClient.java:824)
        at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1139)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient.access$2401(ZooKeeperClient.java:70)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient$14.call(ZooKeeperClient.java:851)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient$14.call(ZooKeeperClient.java:845)
        at 
org.apache.bookkeeper.zookeeper.ZooWorker.syncCallWithRetries(ZooWorker.java:140)
        at 
org.apache.bookkeeper.zookeeper.ZooKeeperClient.exists(ZooKeeperClient.java:845)
        at 
org.apache.pulsar.broker.cache.ConfigurationCacheService.createFailureDomainRoot(ConfigurationCacheService.java:131)
        at 
org.apache.pulsar.broker.cache.ConfigurationCacheService.<init>(ConfigurationCacheService.java:106)
        at 
org.apache.pulsar.broker.PulsarService.startZkCacheService(PulsarService.java:623)
        at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:391)
        at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:318)
        at 
com.lsespace.orion.infra.comms.pulsar.End2EndPulsarTest.setup(End2EndPulsarTest.java:41)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at 
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:134)
        at 
org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:63)
        at 
org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:348)
        at 
org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:302)
        at 
org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:176)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
        at org.testng.TestRunner.privateRun(TestRunner.java:766)
        at org.testng.TestRunner.run(TestRunner.java:587)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
        at org.testng.SuiteRunner.run(SuiteRunner.java:286)
        at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
        at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
        at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:1109)
        at org.testng.TestNG.runSuites(TestNG.java:1039)
        at org.testng.TestNG.run(TestNG.java:1007)
        at 
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
        at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
        at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
   `
   
   The issue is at line 130 at 
org.apache.pulsar.broker.cache.ConfigurationCacheService.createFailureDomainRoot
   
   Paths.get(path).getParent().toString(); returns "\admin\clusters\standalone" 
instead of the expected "/admin/clusters/standalone" This is probably related 
to windows and linux using different path separators. 
   
    #### Steps to reproduce
   
   Start the PulsarStandAlone in a unit test in windows
   
   #### System configuration
   Tested in Pulsar versions: 2.5.1, 2.5.0 and 2.4.1
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to