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

common/http: Remove chromium_url #14583

Merged
merged 36 commits into from
Jan 27, 2021
Merged

common/http: Remove chromium_url #14583

merged 36 commits into from
Jan 27, 2021

Conversation

dio
Copy link
Member

@dio dio commented Jan 6, 2021

Commit Message: This patch adds runtime feature flag to switch from chromium_url to url lib from googleurl. The new one is enabled by default.
Additional Description: This is provided as an alternative of #13808.
Risk Level: Medium
Testing: Existing, plus added unit tests for testing different runtime flags.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

dio added 4 commits January 6, 2021 21:06
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
@repokitteh-read-only
Copy link

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: #14583 was opened by dio.

see: more, trace.

@repokitteh-read-only repokitteh-read-only bot added the deps Approval required for changes to Envoy's external dependencies label Jan 6, 2021
dio added 2 commits January 6, 2021 22:44
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
Copy link
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

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

LGTM, if this can nuke source/common/chromium_url then this is a fairly clean approach (relatively, but the shim could still work..).

@dio
Copy link
Member Author

dio commented Jan 7, 2021

/retest

@repokitteh-read-only
Copy link

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

🐱

Caused by: a #14583 (comment) was created by @dio.

see: more, trace.

dio added 3 commits January 7, 2021 05:20
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
@dio
Copy link
Member Author

dio commented Jan 7, 2021

Nuking chromium_url in this PR. But I'm trying to check if we can have both libs linked and switch based on flag.


// Canonicalizes a host that requires IDN conversion. Returns true on success
bool DoIDNHost(const gurl_base::char16* src, int src_len, CanonOutput* output) {
- int original_output_len = output->length(); // So we can rewind below.
Copy link
Member Author

Choose a reason for hiding this comment

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

Coverage and fuzz_coverage resolves more symbols from url lib, hence it is needed to include url_canon_host.cc.

Copy link
Member Author

Choose a reason for hiding this comment

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

I feel the shimmed one is safer.

Copy link
Member

Choose a reason for hiding this comment

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

@yanavlasov @dio thinking about this vs. the shim PR, I think ultimately, if we can upstream Chromium to give us an IDN-free optional build, that would be the ideal, since then we don't need to own a patch permanently. Shimming reduces the size of the patch, but in all cases with a patch we have a permanent patch ownership issue. LGTM modulo comments.

Copy link
Contributor

Choose a reason for hiding this comment

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

I recall this patch is needed to make fuzzing test happy. I was going to make another pass to see if tests can be fixed to get rid of the patch.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, the last bit of this patch is related to fuzzing test. I agree we should take a deeper look on tests and modify it.

@dio dio changed the title WIP: common/http: Remove chromium_url common/http: Remove chromium_url Jan 7, 2021
@dio dio marked this pull request as ready for review January 7, 2021 14:51
dio added 3 commits January 7, 2021 21:40
This reverts commit be0f0b8.

Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
@dio
Copy link
Member Author

dio commented Jan 8, 2021

/retest

@repokitteh-read-only
Copy link

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

🐱

Caused by: a #14583 (comment) was created by @dio.

see: more, trace.

@dio
Copy link
Member Author

dio commented Jan 8, 2021

/retest

@repokitteh-read-only
Copy link

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

🐱

Caused by: a #14583 (comment) was created by @dio.

see: more, trace.

Copy link
Contributor

@yanavlasov yanavlasov left a comment

Choose a reason for hiding this comment

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

Can you add a release note please?
/wait

dio added 3 commits January 19, 2021 20:23
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
Signed-off-by: Dhi Aurrahman <[email protected]>
@dio dio requested a review from yanavlasov January 19, 2021 20:45
@dio
Copy link
Member Author

dio commented Jan 20, 2021

/retest

@repokitteh-read-only
Copy link

Retrying Azure Pipelines:
Check envoy-presubmit didn't fail.

🐱

Caused by: a #14583 (comment) was created by @dio.

see: more, trace.

@dio
Copy link
Member Author

dio commented Jan 20, 2021

/retest

@repokitteh-read-only
Copy link

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

🐱

Caused by: a #14583 (comment) was created by @dio.

see: more, trace.

htuch
htuch previously approved these changes Jan 21, 2021
Copy link
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

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

LGTM; I'd like @alyssawilk to provide a final go/no-go before we merge, as another input on the runtime default direction, but good from my end. Thanks so much @dio for working through an area of large ambiguity and integration complexity, eliminating our fork here is a huge win.

@alyssawilk
Copy link
Contributor

Generally we encourage new code paths on by default unless we think it's very high risk. If this is roughly the same code, just a different source, I think on by default totally make sense :-)

yanavlasov
yanavlasov previously approved these changes Jan 25, 2021
@dio dio dismissed stale reviews from yanavlasov and htuch via 4271d7a January 25, 2021 21:03
@dio
Copy link
Member Author

dio commented Jan 25, 2021

@htuch @yanavlasov Sorry, fixing the conflicted current.rst dismissed the reviews.

Copy link
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

@yanavlasov
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@dio
Copy link
Member Author

dio commented Jan 27, 2021

@htuch or @moderation we need lgtm deps? :)

@moderation
Copy link
Contributor

/lgtm deps
Looks OK. Patch is large with only a categorization change for existing dep

@repokitteh-read-only repokitteh-read-only bot removed the deps Approval required for changes to Envoy's external dependencies label Jan 27, 2021
@yanavlasov yanavlasov merged commit 18212b5 into envoyproxy:main Jan 27, 2021
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.

5 participants