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: changing how http3 is built #15540

Merged
merged 7 commits into from
Mar 23, 2021

Conversation

alyssawilk
Copy link
Contributor

Will undraft and tag Matt/Dan for review once I make sure various CIs are Ok.

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
Much of #12829

@repokitteh-read-only repokitteh-read-only bot added api deps Approval required for changes to Envoy's external dependencies labels Mar 17, 2021
@repokitteh-read-only
Copy link

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to api/envoy/.
API shepherd assignee is @lizan
CC @envoyproxy/api-watchers: FYI only for changes made to api/envoy/.
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to (bazel/.*repos.*\.bzl)|(bazel/dependency_imports\.bzl)|(api/bazel/.*\.bzl)|(.*/requirements\.txt)|(.*\.patch).

🐱

Caused by: #15540 was opened by alyssawilk.

see: more, trace.

bazel/BUILD Show resolved Hide resolved
Signed-off-by: Alyssa Wilk <[email protected]>
@alyssawilk alyssawilk marked this pull request as ready for review March 19, 2021 17:56
@mattklein123 mattklein123 self-assigned this Mar 19, 2021
@alyssawilk
Copy link
Contributor Author

ah, looks like macos failure is real,
/wait

Signed-off-by: Alyssa Wilk <[email protected]>
@@ -127,7 +127,7 @@ namespace quic {
using QuicLogLevel = spdlog::level::level_enum;

static const QuicLogLevel TRACE = spdlog::level::trace;
static const QuicLogLevel DEBUG = spdlog::level::debug;
static const QuicLogLevel QDEBUG = spdlog::level::debug;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

cc @danzh2010 David said you had a workaround for this - lmk if this conflicts or you have a better plan? Honestly I was surprised this compiled, having assumed we needed to match the google log defines...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

This works. I'll have a more complete fix which will bring back DEBUG (this time without breaking macOS) ASAP. Feel free to merge this.

Copy link
Contributor

Choose a reason for hiding this comment

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

The other fix I mentioned is at #15616

Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

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

Yay amazing. Very excited to unwind all of this. Just a few questions/TODO comments. Thank you!

/wait

Comment on lines +10 to +11
"envoy.listener.quic": "//source/extensions/quic_listeners/quiche:quic_factory_lib",
"envoy.transport_sockets.quic": "//source/extensions/quic_listeners/quiche:quic_transport_socket_factory_lib",
Copy link
Member

Choose a reason for hiding this comment

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

Is your plan to follow up here and completely remove these as extensions? TODO? Also this will allow us to use the GSO writer for udp_proxy also and remove all of that config as well. TODO around that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

hm, I didn't think having quic as a "required" extension made any less sense than tls as a required extension, but if you want to remove it entirely we can. Want me to do that here, or a follow up?

I wasn't planning on following up on the GSO bits, I was largely hoping to just make the QUIC hackery I'm dealing with less hacky. Would you or @danzh2010 be up for tackling GSO as a followup?

Copy link
Member

Choose a reason for hiding this comment

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

hm, I didn't think having quic as a "required" extension made any less sense than tls as a required extension, but if you want to remove it entirely we can. Want me to do that here, or a follow up?

TLS as an extension is "required" because of the openssl stuff. I think if we completely remove QUIC as an extension it will clean up a lot of the places I have commented on where we are referencing extension code in core code and vice versa. I'm happy to do some of this work as a side project if you don't have time but let's add the TODO either way?

I wasn't planning on following up on the GSO bits, I was largely hoping to just make the QUIC hackery I'm dealing with less hacky. Would you or @danzh2010 be up for tackling GSO as a followup?

Yes I can work on this as part of ^ if you don't want to do it now.

Signed-off-by: Alyssa Wilk <[email protected]>
mattklein123
mattklein123 previously approved these changes Mar 22, 2021
Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

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

Thanks!

@lizan
Copy link
Member

lizan commented Mar 23, 2021

/retest

@repokitteh-read-only
Copy link

Retrying Azure Pipelines:
Retried failed jobs in: envoy-presubmit

🐱

Caused by: a #15540 (comment) was created by @lizan.

see: more, trace.

bazel/README.md Outdated
@@ -634,7 +634,7 @@ The following optional features can be disabled on the Bazel build command-line:
* tcmalloc with `--define tcmalloc=disabled`. Also you can choose Gperftools' implementation of
tcmalloc with `--define tcmalloc=gperftools` which is the default for builds other than x86_64 and aarch64.
* deprecated features with `--define deprecated_features=disabled`

* http3/quic with --define `http3=disabled`
Copy link
Member

Choose a reason for hiding this comment

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

This need to be updated to --//bazel:http3=False

Signed-off-by: Alyssa Wilk <[email protected]>
@alyssawilk
Copy link
Contributor Author

Can I get an API stamp too?

@alyssawilk
Copy link
Contributor Author

oh, dependency change? oy

@mattklein123
Copy link
Member

/lgtm deps

@repokitteh-read-only repokitteh-read-only bot removed the deps Approval required for changes to Envoy's external dependencies label Mar 23, 2021
@alyssawilk alyssawilk merged commit b0ce15c into envoyproxy:main Mar 23, 2021
@alyssawilk
Copy link
Contributor Author

cc @goaway @junr03 who probably want --//bazel:http3=False in the mobile repo

@alyssawilk alyssawilk deleted the quic_compile_out branch July 15, 2021 19:32
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.

4 participants