[jira] [Commented] (MAPREDUCE-4377) TaskRunner javaopts parsing doesn't handle embedded spaces
[ https://issues.apache.org/jira/browse/MAPREDUCE-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13402230#comment-13402230 ] Robert Joseph Evans commented on MAPREDUCE-4377: John, that is very true, and if you can fix it I would be very happy to commit it for you. However, I don't think this is the only place in the code that has problems with embedded spaces. I'm not saying that we should not fix it, we should, just be aware that there be monsters here. Also be aware that there may be some Windows vs. POSIX(bash) issues that you may run into with trying to parse the arguments. Hopefully not too much though. TaskRunner javaopts parsing doesn't handle embedded spaces -- Key: MAPREDUCE-4377 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4377 Project: Hadoop Map/Reduce Issue Type: Bug Components: task-controller Affects Versions: trunk Environment: java options containing escaped or non-escaped embedded spaces. Reporter: John Gordon TaskRunner::GetVMArgs reads getChildJavaOpts as one space-delimited string, then split is on ' ' and tries to reason on individual options from there. The problem with this approach is that java options may contain embedded spaces in many legitimate cases -- this means it is reasoning on incomplete option strings and cannot do appropriate preprocessing to do things like handle escape characters or matched quotation marks. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (MAPREDUCE-4377) TaskRunner javaopts parsing doesn't handle embedded spaces
[ https://issues.apache.org/jira/browse/MAPREDUCE-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13402452#comment-13402452 ] John Gordon commented on MAPREDUCE-4377: Thanks Robert! I agree it won't be an easy fix and may need some rearchitecture and significant test additions. TaskRunner javaopts parsing doesn't handle embedded spaces -- Key: MAPREDUCE-4377 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4377 Project: Hadoop Map/Reduce Issue Type: Bug Components: task-controller Affects Versions: trunk Environment: java options containing escaped or non-escaped embedded spaces. Reporter: John Gordon TaskRunner::GetVMArgs reads getChildJavaOpts as one space-delimited string, then split is on ' ' and tries to reason on individual options from there. The problem with this approach is that java options may contain embedded spaces in many legitimate cases -- this means it is reasoning on incomplete option strings and cannot do appropriate preprocessing to do things like handle escape characters or matched quotation marks. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (MAPREDUCE-4377) TaskRunner javaopts parsing doesn't handle embedded spaces
[ https://issues.apache.org/jira/browse/MAPREDUCE-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13401910#comment-13401910 ] John Gordon commented on MAPREDUCE-4377: This also means that the code to update the library path doesn't work if there is already a space in the user-specified library path: for(int i=0; ijavaOptsSplit.length ;i++) { if(javaOptsSplit[i].startsWith(-Djava.library.path=)) { javaOptsSplit[i] += SYSTEM_PATH_SEPARATOR + libraryPath; hasUserLDPath = true; } vargs.add(javaOptsSplit[i]); } Instead of appending to the end of the string, we are actually appending to the middle of the original user-specified library path (or wherever they had an embedded space). TaskRunner javaopts parsing doesn't handle embedded spaces -- Key: MAPREDUCE-4377 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4377 Project: Hadoop Map/Reduce Issue Type: Bug Components: task-controller Affects Versions: trunk Environment: java options containing escaped or non-escaped embedded spaces. Reporter: John Gordon TaskRunner::GetVMArgs reads getChildJavaOpts as one space-delimited string, then split is on ' ' and tries to reason on individual options from there. The problem with this approach is that java options may contain embedded spaces in many legitimate cases -- this means it is reasoning on incomplete option strings and cannot do appropriate preprocessing to do things like handle escape characters or matched quotation marks. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira