hyperium / h2

HTTP 2.0 client & server implementation for Rust.
MIT License
1.34k stars 269 forks source link

Prepare v0.3.8 #582

Closed seanmonstar closed 2 years ago

robjtede commented 2 years ago

Add max_send_buffer_size options to client and server builders, and a default of ~400MB

We've got "large" payload (640KiB) tests hanging in Actix Web; seems like the default is 400KiB not MiB.

https://github.com/hyperium/h2/blob/1945c027f9a51fb79372e84a35109aeafa4fedca/src/proto/mod.rs#L36

Not clear which one you intended.

seanmonstar commented 2 years ago

Er, 400kb, yes.

But still, we were expecting that nothing should hang because of this...

seanmonstar commented 2 years ago

Is this the main place where h2 capacity is checked/used in actix? https://github.com/actix/actix-web/blob/master/actix-http/src/h2/dispatcher.rs#L226

robjtede commented 2 years ago

Spraying some logs: it's hanging on poll_capacity when it crosses the boundary of 400KiB of reserved capacity requested. If this is a case of it worked by accident before / we're using it wrong then I'd appreciate some guidance.