Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decompress even when no-transform is specified #1995

Merged
merged 9 commits into from
Jan 7, 2022

Conversation

jpsim
Copy link
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.

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>
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
@@ -8,6 +8,10 @@ envoy_cc_test(
name = "client_integration_test",
srcs = ["client_integration_test.cc"],
repository = "@envoy",
# TODO(jpsim): Fix remote execution for these tests
Copy link
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
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?

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