Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Perf issue] SocketException when disconnecting the SshClient

Abierto
#1,576 7 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
52/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
csharp
Área
networking

Línea de trabajo

Comience en los puntos de entrada SshClient Connect, Disconnect y Dispose y reproduzca el caso de Windows .NET 9 usando el bucle de conexión del issue. Rastree la ruta de desconexión alrededor de SocketException y verifique que desconectar o liberar se complete sin la excepción WSACancelBlockingCall ni la pérdida de rendimiento indicada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

System Information:
  • Library version: <PackageReference Include="SSH.NET" Version="2024.2.0" />
  • .NET 9.0
  • Running on Windows 10 x64
Problem:

When I invoke the Disconnect method, a SocketException is thrown.
The problem is that I have to call this code in multiple iterations and I need to re-create the connection every time. The exception is a perf hit.

Image

Image

Repro code:

The repro code is very simple. I tried both Connect and ConnectAsync with no differences.
As soon as I try to either Disconnect or Dispose (which calls Disconnect), the Exception is thrown.

_client = new SshClient(connectionInfo);
_client.Connect();      // //await _client.ConnectAsync(default);
_client.Disconnect();    // Exception explodes here
_client.Dispose();

System.Net.Sockets.SocketException: 'A blocking operation was interrupted by a call to WSACancelBlockingCall.'

Lenguaje dominante
C#
Estrellas
4.4k
Forks
994
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sshnet/SSH.NET

Todos los issues de sshnet/SSH.NET

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.