You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Attila Sasvari (JIRA)" <ji...@apache.org> on 2017/10/16 12:18:00 UTC
[jira] [Created] (OOZIE-3086) Oozie shell action ignores absolute
path
Attila Sasvari created OOZIE-3086:
-------------------------------------
Summary: Oozie shell action ignores absolute path
Key: OOZIE-3086
URL: https://issues.apache.org/jira/browse/OOZIE-3086
Project: Oozie
Issue Type: Bug
Components: action
Affects Versions: 4.3.0, 4.2.0, 4.0.1, 4.1.0, 4.0.0, 3.3.2, 3.3.1, 3.3.0, 3.2.0, 3.1.3, trunk
Reporter: Attila Sasvari
[ShellActionExecutor's setupActionConf() method| https://github.com/apache/oozie/blob/883c7556d2f302261eae5aec6e323a5b1de04f74/core/src/main/java/org/apache/oozie/action/hadoop/ShellActionExecutor.java#L57] retrieves only the *basename* for the shell script specified by the user.
{code}
Configuration setupActionConf(Configuration actionConf, Context context, Element actionXml, Path appPath)
{
...
String exec = actionXml.getChild("exec", ns).getTextTrim();
String execName = new Path(exec).getName();
actionConf.set(ShellMain.CONF_OOZIE_SHELL_EXEC, execName);
{code}
As a result, {{ShellMain}} will [execute|https://github.com/apache/oozie/blob/883c7556d2f302261eae5aec6e323a5b1de04f74/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/ShellMain.java#L356] the default command available in $PATH.
{code}
protected String getExec(Configuration actionConf) {
String exec = actionConf.get(CONF_OOZIE_SHELL_EXEC);
{code}
Consequences:
- This behaviour makes it also hard/impossible to use custom executable at a given location (that is available on each node where a shell action can run, for example a specific python version).
- Even if a user specifies a wrong path (e.g. a non-existing {{/usr/bn/id}}) on purpose to force failure of a shell action, the command might succeed with no apparent reason.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)