Disconnect freeze on .NET CORE 3.1 (MAC, Forward Port)
Nessuno ha ancora preso questa issue.
- Lingua principale
- C#
- Stelle
- 4.4k
- Fork
- 993
- Merge medio
- 9g 21h
- PR unite (30g)
- 1
Descrizione
I got freeze after try to disconnect with forward port.
ChannelDirectTcpip.cs
private void ForwardedPort_Closing(object sender, EventArgs eventArgs)
{
// signal to the client that we will not send anything anymore; this should also interrupt the
// blocking receive in Bind if the client sends FIN/ACK in time
ShutdownSocket(SocketShutdown.Send);
// if the FIN/ACK is not sent in time by the remote client, then interrupt the blocking receive
// by closing the socket
CloseSocket();
}
After debug, it freeze on CloseSocket() -> _socket.Dispose()
My solution:
I change
ShutdownSocket(SocketShutdown.Send)
to
ShutdownSocket(SocketShutdown.Both)
Please fix this issue. I don't want to include SSH.NET source code on my project.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia in ChannelDirectTcpip.cs da ForwardedPort_Closing e segui ShutdownSocket e CloseSocket, in particolare la chiamata _socket.Dispose(), segnalata come causa del blocco. Riproduci la disconnessione con una porta inoltrata su .NET Core 3.1 in macOS, quindi verifica che il blocco non si verifichi più e aggiungi o aggiorna la copertura del percorso di chiusura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, macos
- Ambito
- networking
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 48/100