[Windows] Web Client is unreasonably slow
- 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
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