[ 
https://issues.apache.org/jira/browse/OOZIE-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16948605#comment-16948605
 ] 

Mate Juhasz commented on OOZIE-1974:
------------------------------------

Uploaded a patch with initial ideas... not sure about how much business value 
is added by this "feature" though. Ssh unit tests are still not working, we 
should fix them before, so no new tests this time

> SSH Action doesn't handle compound commands eg: cmd1 && cmd2 and stuck in 
> [PREP] stage
> --------------------------------------------------------------------------------------
>
>                 Key: OOZIE-1974
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1974
>             Project: Oozie
>          Issue Type: Bug
>          Components: action
>    Affects Versions: trunk
>            Reporter: Michalis Kongtongk
>            Assignee: Mate Juhasz
>            Priority: Major
>         Attachments: OOZIE-1974.patch
>
>
> example WF that will fail:
> {code}
> <workflow-app name="SSH_COMPOUND_COMMAND" xmlns="uri:oozie:workflow:0.4"> 
> <start to="hello"/> 
> <action name="hello" cred=""> 
> <ssh xmlns="uri:oozie:ssh-action:0.1"> 
> <host>oozie-u...@somedomain.com</host> 
> <command>kinit</command> 
> <args>oozie-u...@somedomain.com</args> 
> <args>-k</args> 
> <args>-t</args> 
> <args>/home/oozie-user/oozie.keytab</args> 
> <args>&amp;&amp;</args> 
> <args>hdfs</args> 
> <args>dfs</args> 
> <args>-put</args> 
> <args>/tmp/random-file.txt</args> 
> <args>/tmp/random-file.txt</args> 
> </ssh> 
> <ok to="end"/> 
> <error to="kill"/> 
> </action> 
> <kill name="kill"> 
> <message>Action failed, error 
> message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
> </kill> 
> <end name="end"/> 
> </workflow-app>
> {code}
> Workaround is to execute the compound command in subshell eg: $(cmd1 && cmd2) 
> {code}
> <workflow-app name="SSH_COMPOUND_COMMAND" xmlns="uri:oozie:workflow:0.4"> 
> <start to="hello"/> 
> <action name="hello" cred=""> 
> <ssh xmlns="uri:oozie:ssh-action:0.1"> 
> <host>oozie-u...@somedomain.com</host> 
> <command>$(kinit</command> 
> <args>oozie-u...@somedomain.com</args> 
> <args>-k</args> 
> <args>-t</args> 
> <args>/home/oozie-user/oozie.keytab</args> 
> <args>&amp;&amp;</args> 
> <args>hdfs</args> 
> <args>dfs</args> 
> <args>-put</args> 
> <args>/tmp/random-file.txt</args> 
> <args>/tmp/random-file.txt</args> 
> <args>)</args> 
> </ssh> 
> <ok to="end"/> 
> <error to="kill"/> 
> </action> 
> <kill name="kill"> 
> <message>Action failed, error 
> message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
> </kill> 
> <end name="end"/> 
> </workflow-app>
> {code}
> Stack trace "org.apache.oozie.command.CommandException: E0800: Action it is 
> not running its in [PREP] state,"
> {code}
> 2014-08-05 23:29:49,721 INFO org.apache.oozie.action.ssh.SshActionExecutor: 
> SERVER[192-168-88-213.lunix.lan] USER[mko] GROUP[-] TOKEN[] APP[Ssh-copy] 
> JOB[0000008-140805224842389-oozie-oozi-W] 
> ACTION[0000008-140805224842389-oozie-oozi-W@Ssh] start() begins 
> 2014-08-05 23:29:49,723 INFO org.apache.oozie.action.ssh.SshActionExecutor: 
> SERVER[192-168-88-213.lunix.lan] USER[mko] GROUP[-] TOKEN[] APP[Ssh-copy] 
> JOB[0000008-140805224842389-oozie-oozi-W] 
> ACTION[0000008-140805224842389-oozie-oozi-W@Ssh] Attempting to copy ssh base 
> scripts to remote host [m...@192-168-88-213.lunix.lan] 
> 2014-08-05 23:29:52,691 INFO org.apache.oozie.servlet.CallbackServlet: 
> SERVER[192-168-88-213.lunix.lan] USER[-] GROUP[-] TOKEN[-] APP[-] 
> JOB[0000008-140805224842389-oozie-oozi-W] 
> ACTION[0000008-140805224842389-oozie-oozi-W@Ssh] callback for action 
> [0000008-140805224842389-oozie-oozi-W@Ssh] 
> 2014-08-05 23:29:52,714 ERROR 
> org.apache.oozie.command.wf.CompletedActionXCommand: 
> SERVER[192-168-88-213.lunix.lan] USER[-] GROUP[-] TOKEN[] APP[-] 
> JOB[0000008-140805224842389-oozie-oozi-W] 
> ACTION[0000008-140805224842389-oozie-oozi-W@Ssh] XException, 
> org.apache.oozie.command.CommandException: E0800: Action it is not running 
> its in [PREP] state, action [0000008-140805224842389-oozie-oozi-W@Ssh] 
> at 
> org.apache.oozie.command.wf.CompletedActionXCommand.eagerVerifyPrecondition(CompletedActionXCommand.java:77)
>  
> at org.apache.oozie.command.XCommand.call(XCommand.java:251) 
> at 
> org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:174)
>  
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>  
> at java.lang.Thread.run(Thread.java:662) 
> 2014-08-05 23:29:52,714 WARN 
> org.apache.oozie.service.CallableQueueService$CallableWrapper: 
> SERVER[192-168-88-213.lunix.lan] USER[-] GROUP[-] TOKEN[-] APP[-] JOB[-] 
> ACTION[-] exception callable [callback], E0800: Action it is not running its 
> in [PREP] state, action [0000008-140805224842389-oozie-oozi-W@Ssh] 
> org.apache.oozie.command.CommandException: E0800: Action it is not running 
> its in [PREP] state, action [0000008-140805224842389-oozie-oozi-W@Ssh] 
> at 
> org.apache.oozie.command.wf.CompletedActionXCommand.eagerVerifyPrecondition(CompletedActionXCommand.java:77)
>  
> at org.apache.oozie.command.XCommand.call(XCommand.java:251) 
> at 
> org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:174)
>  
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>  
> at java.lang.Thread.run(Thread.java:662) 
> 2014-08-05 23:29:57,262 INFO org.apache.oozie.action.ssh.SshActionExecutor: 
> SERVER[192-168-88-213.lunix.lan] USER[mko] GROUP[-] TOKEN[] APP[Ssh-copy] 
> JOB[0000008-140805224842389-oozie-oozi-W] 
> ACTION[0000008-140805224842389-oozie-oozi-W@Ssh] start() ends
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to