Open jmuecke opened 3 weeks ago
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?
Actually nvm we were able to reproduce this, we'll work on a fix.
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