We have a scheduled job that retrieves new files from an SFTP server every 20 minutes. About 1 in 200 attempts, the job fails with SocketException: An established connection was aborted by the software in your host machine.
This apparently corresponds to TCP/IP socket error WSAECONNABORTED.
We are trying to determine whether the problem lies in our infrastructure, the remote server, or perhaps in Rebex's SFTP implementation's compatibility with this particular system. We use Rebex SFTP successfully with many other servers with much higher reliability. The remote system is Solaris SSHD and our partner has a lot of traffic so they are unable to enable verbose logging because it would flood their disk. Are there any other techniques we can use to troubleshoot?
A complete example log is below. Note that this error occurs at various times during a session, sometimes during or just after authentication (as below), sometimes while waiting for response to an LS command, or somtimes during a file download.
We have inspected our firewall logs and found no blocking/filtering has occurred (our partner has done so as well and found no blocking/filtering).
When the error occurs we have tried FileZilla within a minute or so with no errors. Retrying about a minute later with RebEx is successful as well.
2016-10-19 06:43:04.165 INFO Sftp(4871)[29] Info: Connecting to xxxx.xxxx.com:1139 using Sftp 3.0.5584.0.
2016-10-19 06:43:04.321 DEBUG Sftp(4871)[29] SSH: Server is 'SSH-2.0-Sun_SSH_1.1.6'.
2016-10-19 06:43:04.321 INFO Sftp(4871)[29] SSH: Negotiation started.
2016-10-19 06:43:04.587 DEBUG Sftp(4871)[29] SSH: Group exchange.
2016-10-19 06:43:04.680 DEBUG Sftp(4871)[29] SSH: Negotiating key.
2016-10-19 06:43:04.821 DEBUG Sftp(4871)[29] SSH: Validating signature.
2016-10-19 06:43:04.821 INFO Sftp(4871)[29] SSH: Negotiation finished.
2016-10-19 06:43:04.821 INFO Sftp(4871)[29] Info: Server: SSH-2.0-Sun_SSH_1.1.6
2016-10-19 06:43:04.821 INFO Sftp(4871)[29] Info: Fingerprint: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
2016-10-19 06:43:04.821 INFO Sftp(4871)[29] Info: Cipher info: SSH 2.0, DiffieHellmanGroupExchangeSHA1, DSS, aes256- ctr/aes256-ctr, hmac-sha1/hmac-sha1
2016-10-19 06:43:11.321 DEBUG Sftp(4871)[29] SSH: Allowed authentication methods: gssapi-keyex, gssapi-with-mic, publickey, password, keyboard-interactive.
2016-10-19 06:43:11.321 DEBUG Sftp(4871)[29] SSH: Trying password authentication for 'xxxxxxxxxxxxxxxx'.
2016-10-19 06:43:11.587 DEBUG Sftp(4871)[29] SSH: Authentication successful.
2016-10-19 06:43:11.665 ERROR Sftp(4871)[29] SSH: Rebex.Net.SshException: The connection was aborted. ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine
at Rebex.Net.ProxySocket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.SshSession.SY(Int32 A)
--- End of inner exception stack trace ---
at Rebex.Net.SshSession.SY(Int32 A)
at Rebex.Net.SshSession.VY(Byte[]& A)
at Rebex.Net.SshSession.YY(NGB A, Object[] B)
at Rebex.Net.SshSession.OZ(SshChannelType A, Int32 B, Object[] C)
2016-10-19 06:43:11.665 ERROR Sftp(4871)[29] Info: Rebex.Net.SshException: The connection was aborted. ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine
at Rebex.Net.ProxySocket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.SshSession.SY(Int32 A)
--- End of inner exception stack trace ---
at Rebex.Net.SshSession.SY(Int32 A)
at Rebex.Net.SshSession.VY(Byte[]& A)
at Rebex.Net.SshSession.YY(NGB A, Object[] B)
at Rebex.Net.SshSession.OZ(SshChannelType A, Int32 B, Object[] C)
at Rebex.Net.SshSession.OpenChannel(SshChannelType type, Int32 bufferSize)
at Rebex.Net.Sftp.LBB(XMB A)
at Rebex.Net.Sftp.IP(String A, String B, SshPrivateKey C, XMB D)