Skip to content

Stall during download from Google Chrome's symbol server #867

@mstange

Description

@mstange

I originally filed this as seanmonstar/reqwest#1761 : Downloading https://chromium-browser-symsrv.commondatastorage.googleapis.com/chrome.dll.pdb/93B17FC546DE07D14C4C44205044422E1/chrome.dll.pdb with h2 stalls after around 360MB. The stall appears to be caused by an unfortunate interaction h2's flow control behavior and the server's behavior.

I've put a full reproduction here: https://github.com/mstange/reqwest-with-rusttls-stops-after-360mb , specifically in this file:

https://github.com/mstange/reqwest-with-rusttls-stops-after-360mb/blob/main/variant-4-h2-direct/src/main.rs

Steps to reproduce:

git clone https://github.com/mstange/reqwest-with-rusttls-stops-after-360mb && cd reqwest-with-rusttls-stops-after-360mb
cd variant-4-h2-direct/
cargo run --release

Expected results:

The program should complete and print Done! Downloaded 639588034 bytes in total.

Actual results:

The program stops downloading after around 360MB. It will print Error: No new data for 5 seconds! once it detects a stall.

Configuration

  • h2 v0.4.12
  • window sizes: 2MB stream, 5MB connection (the goal was to match the hyper defaults)
  • macOS 15.6.1, Rust 1.89.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions