MINA SSHD
  1. MINA SSHD
  2. SSHD-146

SSH Server : EOF from command not propagating to Process (InvertedShell)

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.6.0, 0.7.0
    • Fix Version/s: 0.7.0
    • Labels:
      None

      Description

      This issue is related to SSHD-35.
      The change implemented in that issue causes the EOF to be propagated to the shell, but because the inverted shell has to pump between the SSH streams and the Process streams, the EOF never makes it to the OS process.

      The cause is that ChannelSession.handleEof() calls shellIn.close(), but shellIn is not directly attached to the process. In fact it's InvertedShellWrapper.pumpStream() that copies from the shellIn to the process, and that doesn't handle EOF.

      I can't see a obvious fix.
      I've put a bit of a hack in that does what I need (and proves that this problem is as described), but it really is a hack...

      1. sshd-eof.patch
        1 kB
        Tim Vernum
      2. SSH-146.patch
        5 kB
        Pierre-Etienne Poirot

        Activity

        Hide
        Tim Vernum added a comment -

        Hack to pump EOF from shellIn to process stdin

        Show
        Tim Vernum added a comment - Hack to pump EOF from shellIn to process stdin
        Hide
        Pierre-Etienne Poirot added a comment -

        SSH-146: Tim's patch (plus a minor change to remove the race condition in InvertedShellWrapper.pumpStream(), where ChannelPipedInputStream.available() was called twice), plus a simple JUnit test

        Show
        Pierre-Etienne Poirot added a comment - SSH-146: Tim's patch (plus a minor change to remove the race condition in InvertedShellWrapper.pumpStream(), where ChannelPipedInputStream.available() was called twice), plus a simple JUnit test
        Hide
        Guillaume Nodet added a comment -

        Thx Tim and Pierre. I've applied the patch.

        Show
        Guillaume Nodet added a comment - Thx Tim and Pierre. I've applied the patch.

          People

          • Assignee:
            Guillaume Nodet
            Reporter:
            Tim Vernum
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development