[
https://issues.apache.org/jira/browse/STORM-2892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stig Rohde Døssing resolved STORM-2892.
---------------------------------------
Resolution: Fixed
Fix Version/s: 1.0.6
1.1.2
1.2.0
2.0.0
Thanks [~erikdw], merged to master, 1.x, 1.1.x and 1.0.x. 1.1.x and 1.0.x
didn't merge cleanly due to the file having moved, so I redid the fix on those
branches. Hope that's okay.
> 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: 20m
> 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)