quiche: update QUICHE to 4f552f349b8df000af24bc6cfa0b78fdc2467fef#19013
quiche: update QUICHE to 4f552f349b8df000af24bc6cfa0b78fdc2467fef#19013alyssawilk merged 4 commits intoenvoyproxy:mainfrom
Conversation
https://github.com/google/quiche/compare/0b75841d5..4f552f349 $ git log 0b75841d5..4f552f349 --date=short --no-merges --format="%ad %al %s" 2021-11-15 wub Deprecate --gfe2_reloadable_flag_quic_bbr_start_new_aggregation_epoch_after_a_full_round 2021-11-15 wub Deprecate --gfe2_reloadable_flag_quic_bbr2_check_cwnd_limited_before_aggregation_epoch. 2021-11-15 fayang Make QUIC_BUG of "Trying to start blackhole detection without no bytes in flight" server side only. 2021-11-15 bnc Deprecate --gfe2_reloadable_flag_quic_reject_invalid_chars_in_field_value. 2021-11-15 quiche-dev Consolidates half_closed_local tracking. This is preparation for a refactoring of stream close events. 2021-11-12 quiche-dev Fixes stream unregistration in OgHttp2Session::CloseStream(). 2021-11-12 quiche-dev Adds unit tests demonstrating bugs in existing oghttp2 handling of stream close events. 2021-11-12 wub Change QuicCryptoServerConfig::ParseSourceAddressToken from taking a 'SourceAddressTokens*' to a 'SourceAddressTokens&'. The function dereferences this pointer without checking for nullptr, changing it to reference prevents caller from passing in a nullptr. 2021-11-12 wub Add a regression test for b/206077990. 2021-11-12 quiche-dev Factors out `MaybeSendBufferedData()`, and moves the functionality into `SendQueuedFrames()`. 2021-11-12 fayang Set chrome_value false for gfe2_reloadable_flag_quic_add_cached_network_parameters_to_address_token. 2021-11-12 quiche-dev Add missing nullptr check. 2021-11-11 wub Add retry_token, resumption_attempted and early_data_attempted to quic::ParsedClientHello. 2021-11-11 quiche-dev Another small fix from debugging: only mark a request stream ready to write if it includes a body. 2021-11-11 quiche-dev Fixes frame length calculations to use the actual serialized length. 2021-11-10 dschinazi Add support for draft-ietf-quic-version-negotiation-05 2021-11-10 vasilvv Make sure WebTransport over HTTP/3 is enabled on the client even when SETTINGS_ENABLE_CONNECT_PROTOCOL is not present. 2021-11-09 dschinazi Refactor QUIC version downgrade prevention, part 2 2021-11-09 dschinazi Refactor QUIC version downgrade prevention 2021-11-09 dschinazi Fix a QuicConnection connection close log 2021-11-08 danzh Internal change 2021-11-08 fayang Internal change 2021-11-08 fayang In QUIC, do not check amplification limit if there is pending timer credit. This would guarantee CRYPTO frame be retransmitted because of 1) PTO fires 2) bundled with outgoing ACKs. 2021-11-05 fayang Set gfe2_reloadable_flag_quic_verify_request_headers_2 chrome_value to true. 2021-11-05 wub Allow QuicToyClient to provide a client certificate to the server, if requested. 2021-11-04 quiche-dev Automated g4 rollback of changelist 386316152. 2021-11-04 danzh Validate QUIC request/response headers against invalid token and disallowed headers. Add empty string to disallow-list. Split --gfe2_reloadable_flag_quic_verify_request_headers into 2 flags: --gfe2_reloadable_flag_quic_verify_request_headers_2 to validate QUIC request/response headers against invalid request with ratio monitoring; mark H2 request with empty string header as invalid earlier in H2 stack. --gfe2_reloadable_flag_quic_act_upon_invalid_header return error response upon any invalid QUIC request header. 2021-11-04 quiche-dev Call visitor_.OnInvalidFrame() for oghttp2 header errors. 2021-11-04 wub Add CachedNetworkParameters to address token for IETF QUIC, and - min_rtt received from a validated token will be used to set the initial rtt, if connection option 'TRTT' is set. - Enable bandwidth resumption for IETF QUIC when connection options BWRE or BWMX exists. 2021-11-03 renjietang Add connection option to trigger path degrading on 1 PTO. 2021-11-03 quiche-dev Add default return statements to switch statements to appease GCC. 2021-11-03 quiche-dev Wrap OgHttp2Session callbacks with a latched_error_ check. 2021-11-03 quiche-dev Add mock methods to MockSpdyFramerVisitor. 2021-11-02 quiche-dev Change Http2VisitorInterface::OnInvalidFrame() to accept an InvalidFrameError enum. 2021-11-02 vasilvv Perform header-based draft version negotiation in WebTransport over HTTP/3. 2021-11-02 haoyuewang Use absl::optional<StatelessResetToken> in place of a separate boolean and token on QuicConnection::PathState. 2021-11-02 dschinazi Internal change 2021-11-02 wub Add mTLS support for IETF QUIC. 2021-11-02 wub Internal change 2021-11-02 vasilvv Internal change 2021-11-02 haoyuewang Update quic::IsAppleMobile to quic::IsAppleClient for better coverage of Apple related QUIC reverse path validation crash: 1) Added coverage for iOS Youtube (from cr/406134264) & iMM (from Sherlog) user agents. 2) Added coverage for Mac traffic. Signed-off-by: Dan Zhang <danzh@google.com>
|
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to |
|
/assign @RyanTheOptimist |
RyanTheOptimist
left a comment
There was a problem hiding this comment.
Looks good modulo the windows compile failure:
bazel-out\x64_windows-opt\bin\external\envoy\bazel\foreign_cc\nghttp2\include\nghttp2/nghttp2.h(930): error C2065: 'nghttp2_data_source_read_callback': undeclared identifier
bazel-out\x64_windows-opt\bin\external\envoy\bazel\foreign_cc\nghttp2\include\nghttp2/nghttp2.h(930): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
bazel-out\x64_windows-opt\bin\external\envoy\bazel\foreign_cc\nghttp2\include\nghttp2/nghttp2.h(930): error C2513: 'int': no variable declared before '='
bazel-out\x64_windows-opt\bin\external\envoy\bazel\foreign_cc\nghttp2\include\nghttp2/nghttp2.h(930): fatal error C1903: unable to recover from previous error(s); stopping compilation
I think Biren looked into exactly this error recently, fwiw.
| name = "com_github_google_quiche", | ||
| genrule_cmd_file = "@envoy//bazel/external:quiche.genrule_cmd", | ||
| build_file = "@envoy//bazel/external:quiche.BUILD", | ||
| patches = ["@envoy//bazel/external:quiche.patch"], |
There was a problem hiding this comment.
I don't think this is going to work. Are there some patch hunks that are failing to apply?
There was a problem hiding this comment.
Unfortunately, I have to bring it back.
Signed-off-by: Dan Zhang <danzh@google.com>
|
/lgtm deps |
| #include "absl/types/span.h" | ||
| #include "http2/adapter/data_source.h" | ||
| #include "http2/adapter/http2_protocol.h" | ||
| #include "http2/adapter/http2_visitor_interface.h" |
There was a problem hiding this comment.
We're planning to back-port these patches to QUICHE, right?
There was a problem hiding this comment.
This was added in QUICHE so I needed to adjust the patch lines here.
There was a problem hiding this comment.
nod but I mean all of the diffs in this file. For example, are we planning to back-port the ssize_t typdef, the NO_ERROR and the default returns?
There was a problem hiding this comment.
+1, why not simply ban use of ssize_t in QUICHE via a presubmit?
There was a problem hiding this comment.
IIRC, it's used by nghttp somewhere that oghttp has to overload (or some such).
There was a problem hiding this comment.
Yeah, nghttp2 uses ssize_t. Envoy actually has a similar workaround in envoy/common/platform.h.
There was a problem hiding this comment.
I'm working on back-porting the fixes in the patch file. Some of these patches will be unnecessary in the next QUICHE update.
There was a problem hiding this comment.
Awesome, that's great to hear!
| params->version = FakeVersionLabel; | ||
| params->supported_versions.push_back(FakeVersionLabel); | ||
| params->supported_versions.push_back(FakeVersionLabel2); | ||
| params->legacy_version_information = quic::TransportParameters::LegacyVersionInformation(); |
There was a problem hiding this comment.
Oh, interesting. I'm slightly surprised that this is required because I thought it was optional. But I guess it's going to be optional eventually, just not yet?
There was a problem hiding this comment.
It is optional indeed. But this test uses this field.
There was a problem hiding this comment.
legacy_version_information is absl::optional but our code (currently) requires it to be present - we'll remove it at a later date. @danzh2010's change is the correct one here.
|
/retest |
|
Retrying Azure Pipelines: |
Signed-off-by: Dan Zhang <danzh@google.com>
|
@envoyproxy/dependency-shepherds |
|
@moderation, need your another stamp on new commits. |
|
/assign @envoyproxy/dependency-shepherds |
|
@envoyproxy/dependency-shepherds cannot be assigned to this issue. |
|
/lgtm deps |
|
@RyanTheOptimist, mind taking another look? |
|
/assign @alyssawilk |
|
@alyssawilk for Sr Maintainer review |
Update QUICHE from 0b75841d5 to 4f552f349
https://github.com/google/quiche/compare/0b75841d5..4f552f349
Risk Level: low
Testing: existing H3 tests passed