Skip to content

Decompress even when no-transform is specified#1995

Merged
buildbreaker merged 9 commits intoenvoyproxy:mainfrom
jpsim:lenient-no-transform
Jan 7, 2022
Merged

Decompress even when no-transform is specified#1995
buildbreaker merged 9 commits intoenvoyproxy:mainfrom
jpsim:lenient-no-transform

Conversation

@jpsim
Copy link
Copy Markdown
Contributor

@jpsim jpsim commented Jan 5, 2022

Commit Message: Decompress even when no-transform is specified
Additional Description: This leverages the flag added in envoyproxy/envoy#19399 to always decompress responses, regardless of the presence of a no-transform cache control header, matching the more lenient behavior of other client-side networking libraries such as OkHttp or URLSession, especially in cases where the remote server is not under the client developer's control.
Risk Level: Low, responses that would previously fail to decode will now succeed when a compressed response comes with a no-transform cache control header.
Testing: Added unit tests in Envoy and manually confirmed in an Android app that gzipped responses with no-transform that previously failed now succeed.
Docs Changes: Not needed.
Release Notes: Added.
Platform Specific Features: This is configured to apply regardless of the platform, so both iOS & Android will get this new behavior.

@jpsim jpsim force-pushed the lenient-no-transform branch from 3d3aabd to 5270b4c Compare January 5, 2022 19:55
This allows matching the more lenient behavior of other client-side
networking libraries such as OkHttp or URLSession, especially in cases
where the remote server is not under the client developer's control.

Signed-off-by: JP Simard <jp@jpsim.com>
@jpsim jpsim force-pushed the lenient-no-transform branch from 1b8b9b3 to f2c4988 Compare January 7, 2022 11:36
jpsim added 5 commits January 7, 2022 09:21
Signed-off-by: JP Simard <jp@jpsim.com>
The integration tests are passing locally for me, so I wonder if the CI failures
have anything to do with Engflow.

Signed-off-by: JP Simard <jp@jpsim.com>
They pass when run locally but fail when run on CI. Let's see if this helps.

Signed-off-by: JP Simard <jp@jpsim.com>
Signed-off-by: JP Simard <jp@jpsim.com>
Signed-off-by: JP Simard <jp@jpsim.com>
@jpsim jpsim marked this pull request as ready for review January 7, 2022 16:14
name = "client_integration_test",
srcs = ["client_integration_test.cc"],
repository = "@envoy",
# TODO(jpsim): Fix remote execution for these tests
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A change in Envoy has caused the integration tests to fail when executed remotely. I'm looking into it here: #1996

I'd rather not block this PR on that investigation though.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bisecting has identified that envoyproxy/envoy#19221 is responsible.

@alyssawilk considering you marked that PR as having a high risk level, do you think this is surfacing a real issue? Should we revert that change until we can better understand the reason these tests broke when executed remotely?

jpsim added 3 commits January 7, 2022 11:16
Signed-off-by: JP Simard <jp@jpsim.com>
Signed-off-by: JP Simard <jp@jpsim.com>
Signed-off-by: JP Simard <jp@jpsim.com>
@buildbreaker buildbreaker merged commit 0a726e9 into envoyproxy:main Jan 7, 2022
@jpsim jpsim deleted the lenient-no-transform branch January 7, 2022 19:24
jpsim added a commit to jpsim/envoy-mobile that referenced this pull request Feb 3, 2022
* origin/main: (21 commits)
  owners: adding charles (envoyproxy#2038)
  [OWNERS] Update Envoy Mobile owners (envoyproxy#2031)
  [deps] Update rules_android to a stable release URL (envoyproxy#2032)
  [json] Remove com_github_nlohmann_json override & patch (envoyproxy#2030)
  Enable the "received byte count" feature. (envoyproxy#2004)
  Run Kotlin macOS tests without EngFlow (envoyproxy#2018)
  final_intel: adding response flags (envoyproxy#2009)
  fix (envoyproxy#2025)
  stream intel: update kotlin public interface to align with swift (envoyproxy#2013)
  tls: update bundled root certificates (envoyproxy#2016)
  tooling: first pass at oncall tooling (envoyproxy#2014)
  test: Solve CI flakiness for test/java/org/chromium/net/urlconnection:urlconnection_test  (envoyproxy#2007)
  envoy: 519774f742 (envoyproxy#2015)
  Default timestamp to -1 for envoy_final_stream_intel (envoyproxy#2006)
  QuicTestServer (envoyproxy#1989)
  bump boringssl to Envoy's version (envoyproxy#1999)
  docs: addding release notes (envoyproxy#2001)
  release: cutting the 0.4.5 release (envoyproxy#2000)
  Revert "bazel: change bazelisk for M1 support (envoyproxy#1966)" (envoyproxy#1998)
  Decompress even when `no-transform` is specified (envoyproxy#1995)
  ...

Signed-off-by: JP Simard <jp@jpsim.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants