Disconnect freeze on .NET CORE 3.1 (MAC, Forward Port)
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
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in ChannelDirectTcpip.cs bei ForwardedPort_Closing und verfolge ShutdownSocket und CloseSocket, insbesondere den Aufruf _socket.Dispose(), bei dem das Einfrieren gemeldet wurde. Reproduziere die Trennung mit einem weitergeleiteten Port unter .NET Core 3.1 auf macOS und überprüfe anschließend, dass das Einfrieren nicht mehr auftritt, und füge Abdeckung für den Schließpfad hinzu oder aktualisiere sie.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp, macos
- Bereich
- networking
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 48/100