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)