actix / actix/actix-web

broken pipe when downloading data using low bandwidth ( http2 )

オープン
#2,693 コメント 5 件 リアクション 0 件 担当者 1 名 @robjtede が担当を希望しています GitHub で見る
A-http C-bug
主要言語
Rust
スター
24.8k
フォーク
1.9k
平均マージ
23時間 10分
マージ済み PR(30日)
26

説明

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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。