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--



Reply via email to