[ https://issues.apache.org/jira/browse/STORM-2892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16324735#comment-16324735 ]
Erik Weathers commented on STORM-2892: -------------------------------------- [~Srdo]: sorry, missed this comment to the ticket. I'm fine with whatever you had to do for merging it back, thanks! > Flux test fails to parse valid PATH environment variable > -------------------------------------------------------- > > Key: STORM-2892 > URL: https://issues.apache.org/jira/browse/STORM-2892 > Project: Apache Storm > Issue Type: Bug > Components: Flux > Affects Versions: 2.0.0, 1.1.1, 1.2.0, 1.0.5 > Reporter: Erik Weathers > Assignee: Erik Weathers > Priority: Trivial > Labels: pull-request-available > Fix For: 2.0.0, 1.2.0, 1.1.2, 1.0.6 > > Time Spent: 50m > Remaining Estimate: 0h > > The flux tests rely on substituting the {{PATH}} environment variable into > the > [{{substitution-test.yaml}}|https://github.com/apache/storm/blob/466a7ad74da27c1250eedf412a487db409e42c19/flux/flux-core/src/test/resources/configs/substitution-test.yaml#L44-L45] > file. > I noticed that the tests were failing when my {{PATH}} had a trailing colon, > despite that being a valid {{PATH}} \[1]. > h2. Existing error > {code: title=mvn test output} > Running org.apache.storm.flux.TCKTest > Tests run: 18, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.852 sec > <<< FAILURE! - in org.apache.storm.flux.TCKTest > testVariableSubstitution(org.apache.storm.flux.TCKTest) Time elapsed: 0.012 > sec <<< ERROR! > org.yaml.snakeyaml.scanner.ScannerException: null; mapping values are not > allowed here; in 'string', line 45, column 890: > ... /usr/local/bin:/usr/bin: > ^ > at > org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:866) > at > org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360) > at > org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226) > at > org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:558) > at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) > at > org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) > at > org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230) > at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159) > at > org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237) > at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159) > at > org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) > at > org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) > at > org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) > at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) > at org.yaml.snakeyaml.Yaml.load(Yaml.java:400) > at > org.apache.storm.flux.parser.FluxParser.loadYaml(FluxParser.java:121) > at > org.apache.storm.flux.parser.FluxParser.parseInputStream(FluxParser.java:75) > at > org.apache.storm.flux.parser.FluxParser.parseResource(FluxParser.java:59) > at > org.apache.storm.flux.TCKTest.testVariableSubstitution(TCKTest.java:224) > Results : > Tests in error: > TCKTest.testVariableSubstitution:224 ยป Scanner null; mapping values are not > al... > {code} > h2. Proposed solution > Just wrap the {{PATH}} variable's contents in the yaml file. > h3. \[1] PATH validity > {code: title=man bash} > ... > PATH The search path for commands. It is a colon-separated > list of directories in which the shell looks for commands > (see COMMAND EXECUTION below). A zero-length (null) > directory name in the value of PATH indicates the current > directory. A null directory name may appear as two adja- > cent colons, or as an initial or trailing colon. The > default path is system-dependent, and is set by the admin- > istrator who installs bash. A common value is > ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''. > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)