Uploaded image for project: 'Oozie'
  1. Oozie
  2. OOZIE-3354

[core] [SSH action] SSH action gets hung

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.0
    • Fix Version/s: 5.1.0
    • Component/s: action, core
    • Labels:
      None

      Description

      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 covers the behavioral details of Process#waitFor().

        Attachments

        1. OOZIE-3354.003.patch
          4 kB
          Andras Piros
        2. OOZIE-3354.002.patch
          3 kB
          Andras Piros
        3. OOZIE-3354.001.patch
          3 kB
          Andras Piros

          Issue Links

            Activity

              People

              • Assignee:
                andras.piros Andras Piros
                Reporter:
                andras.piros Andras Piros
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: