-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #168 from tedjpoole/merge-upstream-changes-1.28
Merge upstream envoy[release/v1.28] changes
- Loading branch information
Showing
71 changed files
with
1,192 additions
and
414 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
1.28.3 | ||
1.28.5-dev |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Fix https://github.com/envoyproxy/envoy-setec/issues/1496#issue-2251291349 | ||
|
||
diff --git a/quiche/quic/core/quic_stream_sequencer_buffer.cc b/quiche/quic/core/quic_stream_sequencer_buffer.cc | ||
index d364d61bc..0966af4b0 100644 | ||
--- a/quiche/quic/core/quic_stream_sequencer_buffer.cc | ||
+++ b/quiche/quic/core/quic_stream_sequencer_buffer.cc | ||
@@ -388,7 +388,8 @@ bool QuicStreamSequencerBuffer::PeekRegion(QuicStreamOffset offset, | ||
|
||
// Determine if entire block has been received. | ||
size_t end_block_idx = GetBlockIndex(FirstMissingByte()); | ||
- if (block_idx == end_block_idx) { | ||
+ if (block_idx == end_block_idx && | ||
+ block_offset < GetInBlockOffset(FirstMissingByte())) { | ||
// Only read part of block before FirstMissingByte(). | ||
iov->iov_len = GetInBlockOffset(FirstMissingByte()) - block_offset; | ||
} else { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# 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/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h | ||
index a38a699ec..58b052015 100644 | ||
--- a/quiche/quic/core/quic_flags_list.h | ||
+++ b/quiche/quic/core/quic_flags_list.h | ||
@@ -105,5 +105,7 @@ QUIC_FLAG(quic_reloadable_flag_quic_bbr2_probe_two_rounds, true) | ||
QUIC_FLAG(quic_reloadable_flag_quic_bbr2_simplify_inflight_hi, true) | ||
// When true, the BBR4 copt sets the extra_acked window to 20 RTTs and BBR5 sets it to 40 RTTs. | ||
QUIC_FLAG(quic_reloadable_flag_quic_bbr2_extra_acked_window, true) | ||
+// If true, QUIC stream will not continue decompressing buffer headers after StopReading() called. | ||
+QUIC_FLAG(quic_reloadable_flag_quic_stop_reading_also_stops_header_decompression, true) | ||
// When true, we will send HTTP/3 setting 0x33 to indicate that we support RFC 9297. | ||
QUIC_FLAG(quic_reloadable_flag_quic_enable_h3_datagrams, true) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
date: June 4, 2024 | ||
|
||
bug_fixes: | ||
- area: router | ||
change: | | ||
Fix a timing issue when upstream requests are empty when decoding data and send local reply when that happends. This is | ||
controlled by ``envoy_reloadable_features_send_local_reply_when_no_buffer_and_upstream_request``. | ||
- area: quic | ||
change: | | ||
Applied 2 QUICHE patches for crash bugs in ``QuicSpdyStream`` ``OnDataAvailable()`` and ``OnInitialHeaderComplete()``. | ||
- area: quic | ||
change: | | ||
Fixed crash bug when QUIC downstream stream was read closed and then timed out. | ||
- area: decompression | ||
change: | | ||
Fixed a bug where Envoy will go into an endless loop when using the brotli decompressor. If the input stream has | ||
redundant data, the decompressor will loop forever. | ||
- area: websocket | ||
change: | | ||
Only 101 is considered a successful response for websocket handshake for HTTP/1.1, and Envoy as a proxy will proxy the response | ||
header from upstream to downstream and then close the request if other status is received. This behavior can be | ||
reverted by ``envoy_reloadable_features_check_switch_protocol_websocket_handshake``. | ||
- area: async http client | ||
change: | | ||
Added one option to disable the response body buffering for mirror request. Also introduced a 32MB cap for the response | ||
buffer, which can be changed by the runtime flag ``http.async_response_buffer_limit`` based on the product needs. | ||
removed_config_or_runtime: | ||
# *Normally occurs at the end of the* :ref:`deprecation period <deprecated>` | ||
|
||
new_features: | ||
|
||
deprecated: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
date: April 18, 2024 | ||
|
||
bug_fixes: | ||
- area: tls | ||
change: | | ||
Fix a RELEASE_ASSERT when using :ref:`auto_sni <envoy_v3_api_field_config.core.v3.UpstreamHttpProtocolOptions.auto_sni>` | ||
if the downstream request ``:authority`` was longer than 255 characters. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
date: June 5, 2024 | ||
|
||
bug_fixes: | ||
- area: router | ||
change: | | ||
Fix a timing issue when upstream requests are empty when decoding data and send local reply when that happends. This is | ||
controlled by ``envoy_reloadable_features_send_local_reply_when_no_buffer_and_upstream_request``. | ||
- area: quic | ||
change: | | ||
Applied 2 QUICHE patches for crash bugs in ``QuicSpdyStream`` ``OnDataAvailable()`` and ``OnInitialHeaderComplete()``. | ||
- area: quic | ||
change: | | ||
Fixed crash bug when QUIC downstream stream was read closed and then timed out. | ||
- area: decompression | ||
change: | | ||
Fixed a bug where Envoy will go into an endless loop when using the brotli decompressor. If the input stream has | ||
redundant data, the decompressor will loop forever. | ||
- area: websocket | ||
change: | | ||
Only 101 is considered a successful response for websocket handshake for HTTP/1.1, and Envoy as a proxy will proxy the response | ||
header from upstream to downstream and then close the request if other status is received. This behavior can be | ||
reverted by ``envoy_reloadable_features_check_switch_protocol_websocket_handshake``. | ||
- area: async http client | ||
change: | | ||
Added one option to disable the response body buffering for mirror request. Also introduced a 32MB cap for the response | ||
buffer, which can be changed by the runtime flag ``http.async_response_buffer_limit`` based on the product needs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,17 @@ | ||
date: April 18, 2024 | ||
date: Pending | ||
|
||
behavior_changes: | ||
# *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* | ||
|
||
minor_behavior_changes: | ||
# *Changes that may cause incompatibilities for some users, but should not for most* | ||
|
||
bug_fixes: | ||
- area: tls | ||
change: | | ||
Fix a RELEASE_ASSERT when using :ref:`auto_sni <envoy_v3_api_field_config.core.v3.UpstreamHttpProtocolOptions.auto_sni>` | ||
if the downstream request ``:authority`` was longer than 255 characters. | ||
# *Changes expected to improve the state of the world and are unlikely to have negative effects* | ||
|
||
removed_config_or_runtime: | ||
# *Normally occurs at the end of the* :ref:`deprecation period <deprecated>` | ||
|
||
new_features: | ||
|
||
deprecated: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,5 +20,5 @@ | |
"1.24": 1.24.12 | ||
"1.25": 1.25.11 | ||
"1.26": 1.26.8 | ||
"1.27": 1.27.5 | ||
"1.28": 1.28.2 | ||
"1.27": 1.27.6 | ||
"1.28": 1.28.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.