From a8e2b82e383dc13023b3c5aab13a40a4d582ddcb Mon Sep 17 00:00:00 2001 From: Lijun Wang <83639177+lijunwangs@users.noreply.github.com> Date: Fri, 19 May 2023 08:24:52 -0700 Subject: [PATCH] Expect errors when opening 2nd stream due to connection limit (#31706) --- streamer/src/nonblocking/quic.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/streamer/src/nonblocking/quic.rs b/streamer/src/nonblocking/quic.rs index 1383ec617..18c8a31b5 100644 --- a/streamer/src/nonblocking/quic.rs +++ b/streamer/src/nonblocking/quic.rs @@ -1232,7 +1232,16 @@ pub mod test { let conn1 = make_client_endpoint(&server_address, None).await; let conn2 = make_client_endpoint(&server_address, None).await; let mut s1 = conn1.open_uni().await.unwrap(); - let mut s2 = conn2.open_uni().await.unwrap(); + let s2 = conn2.open_uni().await; + if s2.is_err() { + // It has been noticed if there is already connection open against the server, this open_uni can fail + // with ApplicationClosed(ApplicationClose) error due to CONNECTION_CLOSE_CODE_TOO_MANY before writing to + // the stream -- expect it. + let s2 = s2.err().unwrap(); + assert!(matches!(s2, quinn::ConnectionError::ApplicationClosed(_))); + return; + } + let mut s2 = s2.unwrap(); s1.write_all(&[0u8]).await.unwrap(); s1.finish().await.unwrap(); // Send enough data to create more than 1 chunks.