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

http3: further cleanup and extension removal #15752

Merged
merged 12 commits into from
Mar 31, 2021
Merged

Conversation

mattklein123
Copy link
Member

Fixes #12829

Risk Level: Low
Testing: Existing/new tests
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Fixes #12829

Signed-off-by: Matt Klein <mklein@lyft.com>
@mattklein123
Copy link
Member Author

Opening as a draft to check CI. I need to add more test coverage of the QUIC disabled case to make sure we do sufficient configuration error checking and can't hit any of the not reached guards.

Signed-off-by: Matt Klein <mklein@lyft.com>
@repokitteh-read-only
Copy link

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to api/envoy/.
API shepherd assignee is @htuch
CC @envoyproxy/api-watchers: FYI only for changes made to api/envoy/.

🐱

Caused by: #15752 was synchronize by mattklein123.

see: more, trace.

@mattklein123 mattklein123 marked this pull request as ready for review March 30, 2021 04:15
@mattklein123 mattklein123 assigned danzh2010 and unassigned htuch Mar 30, 2021
@mattklein123
Copy link
Member Author

@alyssawilk @danzh2010 I think this should be ready for review.

test/common/quic/BUILD Outdated Show resolved Hide resolved
Copy link
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

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

So. Much. Cleaner.

Honestly I would tend to stick with some of the factories over proliferation of #defines but that's style and I'm good either way.

source/common/http/http3/conn_pool.cc Show resolved Hide resolved
source/common/quic/client_connection_factory_impl.cc Outdated Show resolved Hide resolved
source/extensions/extensions_build_config.bzl Show resolved Hide resolved
test/common/quic/BUILD Outdated Show resolved Hide resolved
@mattklein123
Copy link
Member Author

Honestly I would tend to stick with some of the factories over proliferation of #defines but that's style and I'm good either way.

I can take a look at stubs instead, which I may have to do if we want to fully compile everything out even for tests. I will take another look.

Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
@mattklein123
Copy link
Member Author

@PiotrSikora the last commit should fix the fips build. cc @keith thanks for working through that with me.

@alyssawilk this whole situation is honestly a total mess and I think we clean it up with a new feature in bazel 4.0 which supports targets being "compatible with" flags. I would suggest we land this, upgrade to 4.0, and then we can clean up further with actually fully blocking the targets if disabled?cc @lizan

Signed-off-by: Matt Klein <mklein@lyft.com>
@PiotrSikora
Copy link
Contributor

@PiotrSikora the last commit should fix the fips build. cc @keith thanks for working through that with me.

Thanks! I can confirm it fixes the issue.

Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
Copy link
Contributor

@alyssawilk alyssawilk left a comment

Choose a reason for hiding this comment

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

Just when we thought it couldn't get any harier :-P

question - do you think we should have the compile options build do one pass with
!quic
and another with
!fips
to futureproof against that sort of regression? I'm inlined to think it's worth it but we can always try with this as-is and revisit if there are future breakages

source/common/http/http3/conn_pool.cc Show resolved Hide resolved
source/common/quic/client_connection_factory_impl.cc Outdated Show resolved Hide resolved
test/common/http/BUILD Show resolved Hide resolved
@@ -299,6 +299,14 @@ config_setting(
},
)

selects.config_setting_group(
Copy link
Contributor

Choose a reason for hiding this comment

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

Hey @lizan can you do a pass of just the bazel magic?

Copy link
Member Author

Choose a reason for hiding this comment

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

cc @keith also

Copy link
Member

Choose a reason for hiding this comment

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

As long as this works it's definitely fine, I'm impressed it does though, we should separately change the apple config to use this instead, looking at the skylib impl it's very hard to parse, but I believe it's doing that same hack https://github.com/bazelbuild/bazel-skylib/blob/f80bc733d4b9f83d427ce3442be2e07427b2cc8d/lib/selects.bzl#L145-L186

Copy link
Member Author

Choose a reason for hiding this comment

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

Believe it or not, I found this trick by googling, where I found the bazel issue you opened about the apple hack, where the person commented it could be done with this thing, but it wasn't merged yet. Now it's merged. :)

Copy link
Member

Choose a reason for hiding this comment

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

Amazing, I forgot this, here's the update for the other ones that can benefit from this #15797

Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
@mattklein123 mattklein123 merged commit 1134a16 into main Mar 31, 2021
@mattklein123 mattklein123 deleted the more_quic_fixes branch March 31, 2021 21:02
@bencebeky
Copy link
Contributor

The change to HttpIntegrationTest::makeClientConnectionWithOptions() in test/integration/http_integration.cc breaks compilation on certain embedders with the following error message:
third_party/envoy/src/test/integration/http_integration.cc:239:1: error: non-void function does not return a value in all control paths [-Werror,-Wreturn-type]

This is part of presubmit and thus blocking submission of any CL for our project. Please fix. (Unfortunately I do not have my Envoy checkout any more, otherwise I would fix it myself.)

@alyssawilk
Copy link
Contributor

I'll take a look

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

quic: remove ability to have pluggable implementation
8 participants