actix / actix/actix-web

broken pipe when downloading data using low bandwidth ( http2 )

Offen
#2,693 5 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @robjtede Auf GitHub ansehen
A-http C-bug
Vorherrschende Sprache
Rust
Sterne
24.8k
Forks
1.9k
Ø Merge
23 Std. 10 Min.
Gemergte PRs (30 T.)
26

Beschreibung

With new Actix-web `4.0.x` with https ( http2 ) our devices with low bandwidth connection can not download 20-30MB binary data from `acitx_web` server. Devices reported error like:
`broken pipe` `connection reset`

When using low bandwidth connection downloading data form `actix_web` server fail with e.g.:
```
* Failed receiving HTTP2 data
* LibreSSL SSL_write: Broken pipe, errno 32
* Failed sending HTTP2 data
```

## Steps to Reproduce
1. Get `actix example` https://github.com/actix/examples/tree/master/https-tls/rustls and run it `cargo run`
2. Copy cca 20MB file `big_file` into `static` folder
3. run curl with rate limiter: `curl --limit-rate 100k -v 'https://localhost:8443/static/big_file' --insecure > test`

```
7 26.9M 7 1968k 0 0 99k 0 0:04:35 0:00:19 0:04:16 99k* LibreSSL SSL_read: Connection reset by peer, errno 54
* Failed receiving HTTP2 data
* LibreSSL SSL_write: Broken pipe, errno 32
* Failed sending HTTP2 data
7 26.9M 7 1984k 0 0 100k 0 0:04:33 0:00:19 0:04:14 103k
* Connection #0 to host localhost left intact
curl: (56) LibreSSL SSL_read: Connection reset by peer, errno 54
(base)
```
Note:
- Without argument `--limit-rate 100k` -> it works as expected.
- http works as expected ( just https is problem )
- devices using `reqwest` rust crate not `curl` to download data. Same result.

## Context
Downloading binary data from actix-web server. ( program updates )

## Your Environment
Production environment: raspberry pi ( arm )
Dev environment: macOS

- Rust Version (I.e, output of `rustc -V`): rustc 1.59.0
- Actix Web Version: 4.0.1

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.