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

[core] [SSH action] SSH action gets hung

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0.0
    • 5.1.0
    • action, core
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: