From 8182418db107fb7cd6af7d92e1fa7a68b8eb97ff Mon Sep 17 00:00:00 2001 From: RenjieTang Date: Tue, 23 Jul 2024 16:36:21 -0700 Subject: [PATCH] Quiche roll 20240717144914 (#35241) https://github.com/google/quiche/compare/7880417d1..f8ca4ffbe ``` $ git log 7880417d1..f8ca4ffbe --date=short --no-merges --format="%ad %al %s" 2024-07-17 quiche-dev Make implicit `this` capture explicit 2024-07-17 danzh No public description 2024-07-17 wub Fix test ConnectionMigrationWithNonZeroConnectionIDClientIPChangedMultipleTimes. 2024-07-16 wub Deprecate gfe2_restart_flag_quic_opport_bundle_qpack_decoder_data5. 2024-07-16 birenroy Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock. 2024-07-16 birenroy Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock. 2024-07-16 vasilvv Fix a bug in parser where for non-normal object status, the number of bytes read was counted incorrectly. 2024-07-16 birenroy Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock. 2024-07-15 birenroy Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock. 2024-07-15 danzh Unhide security fix to QuicSpdyStream (cl/626052950). 2024-07-12 birenroy Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock. 2024-07-12 awillia Fix a memory leak in InitializeAndCheckForTlsPskFailure test helper 2024-07-11 fayang Parse and log cert compression algos from CHLO. 2024-07-11 quiche-dev Modify the visitor to allow it to interact with packets written by the packet exchanger. 2024-07-11 vasilvv Implement MoQT priority calculation. ``` Signed-off-by: Renjie Tang --------- Signed-off-by: Renjie Tang --- bazel/external/quiche_stream_fix.patch | 51 -------------------------- bazel/repositories.bzl | 1 - bazel/repository_locations.bzl | 6 +-- 3 files changed, 3 insertions(+), 55 deletions(-) delete mode 100644 bazel/external/quiche_stream_fix.patch diff --git a/bazel/external/quiche_stream_fix.patch b/bazel/external/quiche_stream_fix.patch deleted file mode 100644 index ae632933ffbb..000000000000 --- a/bazel/external/quiche_stream_fix.patch +++ /dev/null @@ -1,51 +0,0 @@ -# Fix https://github.com/envoyproxy/envoy-setec/issues/1496#issuecomment-2064844217 - -diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc -index 4a5c2ede2..d69895055 100644 ---- a/quiche/quic/core/http/quic_spdy_stream.cc -+++ b/quiche/quic/core/http/quic_spdy_stream.cc -@@ -1865,6 +1865,18 @@ bool QuicSpdyStream::AreHeaderFieldValuesValid( - return true; - } - -+void QuicSpdyStream::StopReading() { -+ QuicStream::StopReading(); -+ if (GetQuicReloadableFlag( -+ quic_stop_reading_also_stops_header_decompression) && -+ VersionUsesHttp3(transport_version()) && !fin_received() && -+ spdy_session_->qpack_decoder()) { -+ // Clean up Qpack decoding states. -+ spdy_session_->qpack_decoder()->OnStreamReset(id()); -+ qpack_decoded_headers_accumulator_.reset(); -+ } -+} -+ - void QuicSpdyStream::OnInvalidHeaders() { Reset(QUIC_BAD_APPLICATION_PAYLOAD); } - - void QuicSpdyStream::CloseReadSide() { -diff --git a/quiche/quic/core/http/quic_spdy_stream.h b/quiche/quic/core/http/quic_spdy_stream.h -index 10c34b10f..5c0cb0128 100644 ---- a/quiche/quic/core/http/quic_spdy_stream.h -+++ b/quiche/quic/core/http/quic_spdy_stream.h -@@ -117,6 +117,7 @@ class QUICHE_EXPORT QuicSpdyStream - - // QuicStream implementation - void OnClose() override; -+ void StopReading() override; - - // Override to maybe close the write side after writing. - void OnCanWrite() override; -diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h -index 27181430f..6c790fe6d 100755 ---- a/quiche/common/quiche_feature_flags_list.h -+++ b/quiche/common/quiche_feature_flags_list.h -@@ -45,7 +45,8 @@ QUICHE_FLAG(bool, quiche_reloadable_flag_quic_pacing_remove_non_initial_burst, f - QUICHE_FLAG(bool, quiche_reloadable_flag_quic_priority_respect_incremental, false, false, "If true, respect the incremental parameter of each stream in QuicWriteBlockedList.") - QUICHE_FLAG(bool, quiche_reloadable_flag_quic_require_handshake_confirmation, true, true, "If true, require handshake confirmation for QUIC connections, functionally disabling 0-rtt handshakes.") - QUICHE_FLAG(bool, quiche_reloadable_flag_quic_send_placeholder_ticket_when_encrypt_ticket_fails, false, true, "If true, when TicketCrypter fails to encrypt a session ticket, quic::TlsServerHandshaker will send a placeholder ticket, instead of an empty one, to the client.") --QUICHE_FLAG(bool, quiche_reloadable_flag_quic_stop_reading_also_stops_header_decompression, false, false, "") -+ -+QUICHE_FLAG(bool, quiche_reloadable_flag_quic_stop_reading_also_stops_header_decompression, false, true, "If true, QUIC stream will not continue decompressing buffer headers after StopReading() called.") - QUICHE_FLAG(bool, quiche_reloadable_flag_quic_test_peer_addr_change_after_normalize, false, false, "If true, QuicConnection::ProcessValidatedPacket will use normalized address to test peer address changes.") - QUICHE_FLAG(bool, quiche_reloadable_flag_quic_testonly_default_false, false, false, "A testonly reloadable flag that will always default to false.") - QUICHE_FLAG(bool, quiche_reloadable_flag_quic_testonly_default_true, true, true, "A testonly reloadable flag that will always default to true.") diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index f42c356932fa..63f74b807b60 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -1139,7 +1139,6 @@ def _com_github_google_quiche(): patch_cmds = ["find quiche/ -type f -name \"*.bazel\" -delete"], patches = [ "@envoy//bazel/external:quiche_sequencer_fix.patch", - "@envoy//bazel/external:quiche_stream_fix.patch", ], patch_args = ["-p1"], build_file = "@envoy//bazel/external:quiche.BUILD", diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index f28bd5705739..b4d3d606a1bb 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -1191,12 +1191,12 @@ REPOSITORY_LOCATIONS_SPEC = dict( project_name = "QUICHE", project_desc = "QUICHE (QUIC, HTTP/2, Etc) is Google‘s implementation of QUIC and related protocols", project_url = "https://github.com/google/quiche", - version = "7880417d1eec571527443008ac7bad4735232a62", - sha256 = "e6b658d0c109b561c580ec66768ffdda737e6332bb195150bf1622ce6415dbf5", + version = "f8ca4ffbe5eb5c099bd11ba3e90553fa282c8421", + sha256 = "7648ede3f32bc6367a629b245d268c9be47ba05e23b4345a54152dabeba387d9", urls = ["https://github.com/google/quiche/archive/{version}.tar.gz"], strip_prefix = "quiche-{version}", use_category = ["controlplane", "dataplane_core"], - release_date = "2024-07-11", + release_date = "2024-07-17", cpe = "N/A", license = "BSD-3-Clause", license_url = "https://github.com/google/quiche/blob/{version}/LICENSE",