You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Andras Piros (JIRA)" <ji...@apache.org> on 2018/09/27 19:17:00 UTC
[jira] [Commented] (OOZIE-3354) [core] [SSH action] SSH action gets
hung
[ https://issues.apache.org/jira/browse/OOZIE-3354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16630927#comment-16630927 ]
Andras Piros commented on OOZIE-3354:
-------------------------------------
[~asasvari] can you please review? Thanks!
> [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
>
> Attachments: OOZIE-3354.001.patch
>
>
> 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)