sshnet / sshnet/SSH.NET

StackoverflowException when connecting using private key

Aperta
#156 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C#
Stelle
4.4k
Fork
993
Merge medio
9g 21h
PR unite (30g)
1

Descrizione

SSH.NET version 2016.0.0 (release as well as debug mode)
Remote SSH Server version: Serv-U MFTP FTP 15.1.4.6 (using username/password and private key)
Remote Operating System distribution name and architecture (x32/x64): x64
What kind of access do you have?: Local machine
Does Putty/WinSCP work?: Yep, SSH.NET also works most (ie 99,9%) of the time
Operating System (for Windows, run winver.exe): Windows 2012 R2 build 9600
.NET Framework versions installed (See C:\WINDOWS\Microsoft.Net\Framework): .NET 4.6
What is your target framework and architecture (x32/x64)?: x64
Is your project multi-threaded/complex?: No, I can replicate using single thread

We have created a console application, that periodically monitors a local SFTP server for new files. Sometimes, the process hangs and a StackOverflow exception is logged, crashing the process.

We are using a Dispose-pattern, where each new poll gets a new instance of Sftp, connects and calls Sftp.ListDirectory("/dirname"); after polling files, the connection is disconnected and disposed, using a using-statement in our program.

As this is a StackOverflow exception, I cannot pinpoint the exact point, where the program crashes, however I have attached trace from System.Diagnostics, that hopefully can provide some insight.
SSHtrace.txt

BTW: Thank you for a fantastic SSH/SFTP-library, I'm very impressed with the feature set as well as the performance!

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con il file allegato SSHtrace.txt e il punto di ingresso del polling intorno a Sftp.ListDirectory("/dirname"), quindi esamina il flusso ripetuto di connect, disconnect e Dispose descritto nel report. Il lavoro è completato quando la causa della StackOverflowException intermittente è stata identificata e lo scenario di polling ripetuto non causa più arresti anomali.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
networking
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.