You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like Pingora doesn't respect upstream's "max concurrent send streams" setting sent in the SETTINGS frame and sticks with whatever is configured for a peer. If peer's configuration has a higher value than what the upstream sends, new streams can't be opened (upstream rejects them) and new connections to the upstreams are not opened because Pingora believes the existing connection still has available streams.
Pingora info
Please include the following information about your environment:
Describe the bug
It looks like Pingora doesn't respect upstream's "max concurrent send streams" setting sent in the
SETTINGS
frame and sticks with whatever is configured for a peer. If peer's configuration has a higher value than what the upstream sends, new streams can't be opened (upstream rejects them) and new connections to the upstreams are not opened because Pingora believes the existing connection still has available streams.Pingora info
Please include the following information about your environment:
Pingora version: 0.3.0
Rust version: 1.73
Operating system version: NixOS 24.05
Steps to reproduce
I've created a small project that reproduces the problem: https://github.com/pborzenkov/pingora-h2-streams
Expected results
New connections are opened to the upstream once existing connections no longer have available streams.
Observed results
New connections are not opened to the upstream.
Additional context
It looks like the problem is here -
pingora/pingora-core/src/connectors/http/v2.rs
Lines 421 to 427 in 8ae4ebb
According to the docs, the
handshake
future doesn't wait for theSETTINGS
frame from the server:The text was updated successfully, but these errors were encountered: