You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Brandon Scheller (JIRA)" <ji...@apache.org> on 2018/07/05 22:39:00 UTC

[jira] [Created] (HADOOP-15585) Fix spaces in HADOOP_OPTS arguments

Brandon Scheller created HADOOP-15585:
-----------------------------------------

             Summary: Fix spaces in HADOOP_OPTS arguments
                 Key: HADOOP-15585
                 URL: https://issues.apache.org/jira/browse/HADOOP-15585
             Project: Hadoop Common
          Issue Type: Improvement
          Components: scripts
    Affects Versions: 3.0.3
            Reporter: Brandon Scheller


Prefix exec by eval in Hadoop bin scripts
Prior to this change, if HADOOP_OPTS contains any arguments that include a
space, the command is not parsed correctly. For example, if
HADOOP_OPTS="... -XX:OnOutOfMemoryError=\"kill -9 %p\" ...", the bin/hadoop
script will fail with the error "Unrecognized option: -9". No amount of clever
escaping of the quotes or spaces in the "kill -9 %p" command will fix this.

The only alternative appears to be to use 'eval'. Switching to use 'eval'
*instead of* 'exec' also works, but it results in an intermediate bash process
being left alive throughout the entire lifetime of the Java proces being
started. Using 'exec' prefixed by 'eval' as has been done in this commit gets
the best of both worlds, in that options with spaces are parsed correctly, and
you don't end up with an intermediate bash process as the parent of the Java
process.

This is the exact approach that has been taken with Tomcat as well. See:
http://tomcat.10.x6.nabble.com/Using-eval-vs-exec-in-shell-scripts-td2193116.html
https://github.com/apache/tomcat/commit/3445dc3dba7b15f2fff27faef77003215f62e49a
https://github.com/apache/tomcat/commit/83c0aea60f331eb632dcea8e9919d234903e06d1



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org