[ 
https://issues.apache.org/jira/browse/OOZIE-3354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andras Piros updated OOZIE-3354:
--------------------------------
    Summary: [core] [SSH action] SSH action gets hung  (was: [core] [action] 
SSH action gets hung)

> [core] [SSH action] SSH action gets hung
> ----------------------------------------
>
>                 Key: OOZIE-3354
>                 URL: https://issues.apache.org/jira/browse/OOZIE-3354
>             Project: Oozie
>          Issue Type: Bug
>          Components: action, core
>    Affects Versions: 5.0.0
>            Reporter: Andras Piros
>            Assignee: Andras Piros
>            Priority: Major
>             Fix For: 5.1.0
>
>
> In OOZIE-3183 {{SshActionExecutor#drainBuffers()}} has changed. Previously, 
> it called {{Process#exitCode()}} that would return immediately either with 
> the exit code, or would throw an {{IllegalThreadStateException}} if the 
> process would still be running.
> In the current implementation introduced by OOZIE-3183, {{Process#waitFor()}} 
> is used that would block until the process finishes. Given the fact that 
> sometime {{SshActionExecutor#check()}} calls {{ssh ... cat stdout}}, and thisĀ 
> SSH process can be trapped even after {{cat stdout}} has been finished on the 
> target host, it can happen that {{SshActionExecutor#drainBuffers()}} waits 
> indefinitely without a chance to gather any {{stdout}} or {{stderr}} logs. 
> Hence this particular one is a compatibility breaking change with existing 
> SSH action behavior.
> Let's re-introduce theĀ former behavior in 
> {{SshActionExecutor#drainBuffers()}} that keeps polling 
> {{Process#exitValue()}} and reading the progress on {{stdout}} and {{stderr}} 
> till the process finishes, for backwards compatibility.
> [This 
> article|https://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html]
>  covers the behavioral details of {{Process#waitFor()}}.



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

Reply via email to