-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FRAME_TYPE_STREAMS_BLOCKED
ignored?
#1917
Comments
I'm attaching a client and server log where this seems to happen, and a pcap and TLS key log file: Archive.zip The server receives a |
I think the problem that the server doesn't retransmit the |
Why is the call to I looked into this a bit, and it seems like the send profile limit is 255, i.e.,`SendProfile::ack_only() is true, so we allow no other frames than ACKs to be sent. |
Because This is the lost packet that contains
Then,
In the end, the server stalls. |
I'm probably missing something, but shouldn't the server not stall here, and instead gain some cwnd after a PTO? |
OK, I can confirm that the I think this is a bug on the server side because the underlying connection actually returns a delay, but the server code decides to return |
I think the problem is about this line:
This is what happened:
|
Any idea for a fix? |
Sharing some preliminary thoughts. Taking a deeper look now. I see how #1926 fixes the issue. That said, say a connection returns an
Shouldn't the |
It seems that |
Great catch. As discussed in the call just now, I will test out an alternative to #1926 using your finding. Will hopefully submit a pull request in a bit. |
This code
neqo/neqo-transport/src/streams.rs
Lines 203 to 207 in 121fe68
says that there is no need to trigger sending a
FRAME_TYPE_MAX_STREAMS
when we get anFRAME_TYPE_STREAMS_BLOCKED
. I wonder if that is actually correct, if theFRAME_TYPE_MAX_STREAMS
triggered by retiring streams was lost?The RPS bench failure for #1903 seems to stem from the client timing out while waiting for
FRAME_TYPE_MAX_STREAMS
updates that end up in PMTUD probes that are repeatedly getting dropped. That idle timeout sometimes happens before we'd RTX theFRAME_TYPE_MAX_STREAMS
.The text was updated successfully, but these errors were encountered: