neqo icon indicating copy to clipboard operation
neqo copied to clipboard

Demo client and server don't close resumed connection

Open larseggert opened this issue 1 year ago • 2 comments

I used the following patch to test/test.sh to introduce a 0-RTT resumption (in order to debug the QNS failures, see #1874).

diff --git a/test/test.sh b/test/test.sh
index 99286a19..a3068834 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -16,14 +16,14 @@ cargo build --bin neqo-client --bin neqo-server
 addr=127.0.0.1
 port=4433
 path=/20000
-flags="--verbose --verbose --verbose --qlog-dir $tmp --use-old-http --alpn hq-interop --quic-version 1"
+flags="--verbose --verbose --verbose --idle 2 --qlog-dir $tmp --use-old-http --alpn hq-interop --quic-version 1"
 if [ "$(uname -s)" != "Linux" ]; then
         iface=lo0
 else
         iface=lo
 fi
 
-client="./target/debug/neqo-client $flags --output-dir $tmp --stats https://$addr:$port$path"
+client="./target/debug/neqo-client $flags --output-dir $tmp --stats --resume https://$addr:$port$path https://$addr:$port/1 https://$addr:$port/2 https://$addr:$port/3"
 server="SSLKEYLOGFILE=$tmp/test.tlskey ./target/debug/neqo-server $flags $addr:$port"
 
 tcpdump -U -i "$iface" -w "$tmp/test.pcap" host $addr and port $port >/dev/null 2>&1 &

Now when I run test/test.sh, the second connection seems to run into idle timeouts on both client and server.

@mxinden any thoughts?

larseggert avatar Jul 19 '24 13:07 larseggert

the second connection seems to run into idle timeouts on both client and server.

I am assuming that you are basing this on the following log line?

0s269ms INFO Closing timer expired

I can reproduce locally. That said, the timer (log line above) does not seem to correlate with the --idle flag. Setting the --idle flag to 10 still has the client terminate immediately, not wait for 10s, but still print the line above.

I can debug further on Monday.

mxinden avatar Jul 19 '24 19:07 mxinden

0-RTT resumption via --resume seems to not work at all. At least I only see one handshake in the pcap when I run the test. Also, the client prints [Client ba48fde68c1e6a18] 0-RTT rejected and the files for objects requested over 0-RTT are empty.

(It does seem to work when passing --qns-test zerortt to the client.)

larseggert avatar Jul 20 '24 14:07 larseggert

@larseggert with neqo-neqo passing the resumption and zerortt interop test, can this issue be closed?

mxinden avatar Nov 21 '24 08:11 mxinden

Yes, let's close.

larseggert avatar Nov 21 '24 09:11 larseggert