sshnet / sshnet/SSH.NET

Socket read operation has timed out after 30000 milliseconds - after several successful connections

Offen
#642 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
4.4k
Forks
993
Ø Merge
9 T. 21 Std.
Gemergte PRs (30 T.)
1

Beschreibung

Hi!
I have a different issue then similiar ones. After serveral successful connection I'm getting an error as in the title.
It's a Windows Service that checks documents status on a SFTP server. And, yes, it is a proper SFTP (SSH) server. I think it's an ISP issue on server side that adds all IPs to blacklist, but I have to make sure that this is not a bug...

My application connects to SFTP server every 5 minutes. Tried on 3 different machines with different IPs, everything ends with the same error after couple successful ones.

Scheduler is Quartz.

2020-03-13 16:05:00.8389|INFO|CONNECTED
2020-03-13 16:10:00.7614|INFO|CONNECTED
2020-03-13 16:15:00.8870|INFO|CONNECTED
2020-03-13 16:20:00.9344|INFO|CONNECTED
2020-03-13 16:25:00.7007|INFO|CONNECTED
2020-03-13 16:30:00.7013|INFO|CONNECTED
2020-03-13 16:35:00.7175|INFO|CONNECTED
2020-03-13 16:40:00.7181|INFO|CONNECTED
2020-03-13 16:45:00.7187|INFO|CONNECTED
2020-03-13 16:50:00.7037|INFO|CONNECTED
2020-03-13 16:55:00.6886|INFO|CONNECTED
2020-03-13 17:00:00.7517|INFO|CONNECTED
2020-03-13 17:05:00.6898|INFO|CONNECTED
2020-03-13 17:10:00.7061|INFO|CONNECTED
2020-03-13 17:15:00.6754|INFO|CONNECTED
2020-03-13 17:20:00.7854|INFO|CONNECTED
2020-03-13 17:25:00.6922|INFO|CONNECTED
2020-03-13 17:30:00.6928|INFO|CONNECTED
2020-03-13 17:35:00.6934|INFO|CONNECTED
2020-03-13 17:40:00.6940|INFO|CONNECTED
2020-03-13 17:45:30.5072|ERROR|Renci.SshNet.Common.SshOperationTimeoutException: Socket read operation has timed out after 30000 milliseconds.
   w Renci.SshNet.Abstractions.SocketAbstraction.Read(Socket socket, Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
   w Renci.SshNet.Session.SocketReadLine(TimeSpan timeout)
   w Renci.SshNet.Session.Connect()
   w Renci.SshNet.BaseClient.Connect()
   w OptimoKurierService.Jobs.MainJob.<Execute>d__0.MoveNext()
2020-03-13 17:50:30.5078|ERROR|Renci.SshNet.Common.SshOperationTimeoutException: Socket read operation has timed out after 30000 milliseconds.
   w Renci.SshNet.Abstractions.SocketAbstraction.Read(Socket socket, Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
   w Renci.SshNet.Session.SocketReadLine(TimeSpan timeout)
   w Renci.SshNet.Session.Connect()
   w Renci.SshNet.BaseClient.Connect()
   w OptimoKurierService.Jobs.MainJob.<Execute>d__0.MoveNext()
2020-03-13 17:55:30.5240|ERROR|Renci.SshNet.Common.SshOperationTimeoutException: Socket read operation has timed out after 30000 milliseconds.
   w Renci.SshNet.Abstractions.SocketAbstraction.Read(Socket socket, Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
   w Renci.SshNet.Session.SocketReadLine(TimeSpan timeout)
   w Renci.SshNet.Session.Connect()
   w Renci.SshNet.BaseClient.Connect()
   w OptimoKurierService.Jobs.MainJob.<Execute>d__0.MoveNext()
2020-03-13 18:00:30.5246|ERROR|Renci.SshNet.Common.SshOperationTimeoutException: Socket read operation has timed out after 30000 milliseconds.
   w Renci.SshNet.Abstractions.SocketAbstraction.Read(Socket socket, Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
   w Renci.SshNet.Session.SocketReadLine(TimeSpan timeout)
   w Renci.SshNet.Session.Connect()
   w Renci.SshNet.BaseClient.Connect()
   w OptimoKurierService.Jobs.MainJob.<Execute>d__0.MoveNext()
2020-03-13 18:05:30.5096|ERROR|Renci.SshNet.Common.SshOperationTimeoutException: Socket read operation has timed out after 30000 milliseconds.
   w Renci.SshNet.Abstractions.SocketAbstraction.Read(Socket socket, Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
   w Renci.SshNet.Session.SocketReadLine(TimeSpan timeout)
   w Renci.SshNet.Session.Connect()
   w Renci.SshNet.BaseClient.Connect()
   w OptimoKurierService.Jobs.MainJob.<Execute>d__0.MoveNext()

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem gemeldeten Stacktrace über Renci.SshNet.Abstractions.SocketAbstraction.Read, Session.Connect und BaseClient.Connect und überprüfe anschließend die wiederholte Verbindungssequenz aus OptimoKurierService.Jobs.MainJob. Reproduziere die erfolgreichen Verbindungen, auf die Zeitüberschreitungen folgen, und vergleiche das Verhalten der Bibliothek mit dem SFTP-Server und den Netzwerkbedingungen. Als erledigt gilt die Feststellung, ob die Zeitüberschreitung ein Fehler der Bibliothek oder ein externes Verbindungsproblem ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
networking
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
15/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.