Skip to content

http3: further cleanup and extension removal#15752

Merged
mattklein123 merged 12 commits intomainfrom
more_quic_fixes
Mar 31, 2021
Merged

http3: further cleanup and extension removal#15752
mattklein123 merged 12 commits intomainfrom
more_quic_fixes

Conversation

@mattklein123
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown

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
Copy Markdown
Member Author

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

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

@mattklein123
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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

},
)

selects.config_setting_group(
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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