You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@mina.apache.org by Ian Kent <ia...@gmail.com> on 2016/01/27 14:29:27 UTC

SCP server with in-memory FileSystem doesn't work

Hi

I've been trying to implement an SCP server with an in-memory FileSystem,
so files can be transferred directly into the receiving application over
SSH (rather than disk-polling).

An example of my implementation is
https://gist.github.com/ian-kent/75bcb2197d757e584e10

This initially works ok, and the first file I transfer using scp works and
its contents printed to the console. However, any subsequent requests
(whether thats multiple files in one scp command, or multiple scp commands)
fail with an scp error of "lost connection".

I've run scp with -vvvv flags, and SSHD with its logging set to TRACE. When
the transfer fails (i.e. all subsequent requests), the output from both scp
and SSHD report everything as being ok, other than the final "lost
connection" error on the client. The only difference is that the actual
file content doesn't get transferred, but I couldn't see anything which
suggests why that doesn't happen.

This seems to be related to using an in-memory file system. If I comment
out lines 55 - 60 on the sample code, so SSHD defaults to using a real file
system, everything works reliably as expected, which suggests its probably
not directly a Mina/SSHD bug.

I've tried multiple in-memory file systems including
google/JimFS, marschall/memoryfilesystem and openCage/memoryfs (all on
GitHub), and all of them suffer from the same problem.

Is there something I might have missed, e.g. a FileSystem feature not
implemented by any of those in-memory implementations, or does anyone have
any ideas why this might not be working?

Thanks
Ian Kent

Re: SCP server with in-memory FileSystem doesn't work

Posted by Ian Kent <ia...@gmail.com>.
Apologies, the correct gist URL is 
https://gist.github.com/ian-kent/bc378dccb8948785dda4

On 2016-01-27 13:29:27 +0000, Ian Kent said:

> --001a113a6d208f957c052a50ca4d
> 
> Content-Type: text/plain; charset=UTF-8
> 
> 
> 
> Hi
> 
> 
> 
> I've been trying to implement an SCP server with an in-memory FileSystem,
> 
> so files can be transferred directly into the receiving application over
> 
> SSH (rather than disk-polling).
> 
> 
> 
> An example of my implementation is
> 
> https://gist.github.com/ian-kent/75bcb2197d757e584e10
> 
> 
> 
> This initially works ok, and the first file I transfer using scp works and
> 
> its contents printed to the console. However, any subsequent requests
> 
> (whether thats multiple files in one scp command, or multiple scp commands)
> 
> fail with an scp error of "lost connection".
> 
> 
> 
> I've run scp with -vvvv flags, and SSHD with its logging set to TRACE. When
> 
> the transfer fails (i.e. all subsequent requests), the output from both scp
> 
> and SSHD report everything as being ok, other than the final "lost
> 
> connection" error on the client. The only difference is that the actual
> 
> file content doesn't get transferred, but I couldn't see anything which
> 
> suggests why that doesn't happen.
> 
> 
> 
> This seems to be related to using an in-memory file system. If I comment
> 
> out lines 55 - 60 on the sample code, so SSHD defaults to using a real file
> 
> system, everything works reliably as expected, which suggests its probably
> 
> not directly a Mina/SSHD bug.
> 
> 
> 
> I've tried multiple in-memory file systems including
> 
> google/JimFS, marschall/memoryfilesystem and openCage/memoryfs (all on
> 
> GitHub), and all of them suffer from the same problem.
> 
> 
> 
> Is there something I might have missed, e.g. a FileSystem feature not
> 
> implemented by any of those in-memory implementations, or does anyone have
> 
> any ideas why this might not be working?
> 
> 
> 
> Thanks
> 
> Ian Kent
> 
> 
> 
> --001a113a6d208f957c052a50ca4d--
> 
> 
>