Skip to content
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

mvfst ignores ACK and does not send anti-deadlock packets #362

Open
jmuecke opened this issue Oct 30, 2024 · 2 comments
Open

mvfst ignores ACK and does not send anti-deadlock packets #362

jmuecke opened this issue Oct 30, 2024 · 2 comments
Assignees

Comments

@jmuecke
Copy link

jmuecke commented Oct 30, 2024

I used mvfst as QUIC client with a modified quic-go server, which responds with an acknowledgment without coalesced ServerHello in response to the ClientHello.
After reception the mvfst should program an anti-deadlock PTO at 3x the first experienced RTT.
Looking at the pcap of the connection I do not see a probe packet after 3x first RTT.

This issue is most noticeable when the server is slow to complete the handshake or in a deadlock situation To simulate this, I introduced a delay after the ACK. I used the latest mvfst interop-runner docker image for testing. A pcap file is attached, with the ACK visible in Wireshark as packet No. 6. I have also attached the Qlog.

The ACK should allow the client to accurately estimate the RTT, program the PTO, and send probe packets upon PTO expiry. Currently, mvfst does not react to the acknowledgment by sending probe packets. Also the default PTO does not seem to expire, which can lead to a deadlock.

trace_node_left.pcapng.gz
013673d91b510647.qlog.txt

@kvtsoy
Copy link
Contributor

kvtsoy commented Oct 30, 2024

To simulate this, I introduced a delay after the ACK. I used the latest mvfst interop-runner docker image for testing

Do you have an example ACK delay change for quic-go and how you actually run the server to reproduce?

@kvtsoy
Copy link
Contributor

kvtsoy commented Oct 30, 2024

Actually nvm we were able to reproduce this, we'll work on a fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants