actix / actix/actix-web

[Windows] Web Client is unreasonably slow

Abierto
#2,256 4 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
24.8k
Forks
1.9k
Merge medio
23 h 10 min
PR fusionados (30 d)
26

Descripción

Reproduce snippet:
```rust
#[actix_web::main]
async fn main() -> std::io::Result<()> {
let sys_time = std::time::SystemTime::now();
let start_time = sys_time.elapsed().unwrap();

let client = actix_web::client::Client::builder()
.connector(actix_web::client::Connector::new()
.timeout(Duration::from_secs(35))
.finish())
.timeout(Duration::from_secs(35))
.finish();

let response = client.get("https://google.com")
.send()
.await
.unwrap()
.body()
.await
.unwrap();
let end_time = sys_time.elapsed().unwrap();
let secs = end_time - start_time;
println!("{}", secs.as_secs());
return Ok(());
}
```

This code prints "20" on Windows, i.e. get request to Google takes 20 seconds.

Same code on Linux (WSL2) takes 0 seconds.

I don't have any clues what might be wrong, but perhaps it's related to DNS resolution?

`Cargo.toml`:
```toml
// ...

[dependencies]
actix-web = { version = "3", features = ["rustls"] }
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con el código del cliente Rust de la reproducción y la dependencia actix-web versión 3 en Cargo.toml. Ejecuta el fragmento en Windows y Linux/WSL2; después, investiga la ruta de la solicitud y la hipótesis sobre la resolución DNS. Se considera terminado cuando la misma solicitud a Google ya no tarda unos 20 segundos en Windows y el comportamiento está cubierto por una prueba de regresión adecuada.

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

Evaluación

Stack tecnológico
rust
Área
networking
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.