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

orig-proto: Avoid emiting HTTP/2 errors for upgraded requests #1245

Merged
merged 2 commits into from
Sep 7, 2021

Conversation

olix0r
Copy link
Member

@olix0r olix0r commented Sep 6, 2021

Our error handlers need to account for the fact that HTTP/1 requests may
fail with HTTP/2 errors due to orig-proto upgrading.

To simplify error handling (in an upcoming change), the
orig_proto::Upgrade service introduces a new error type,
orig_proto::DowngradedH2Error that hides the original error source so
that these errors are not detected as being an h2::Error.

Our error handlers need to account for the fact that HTTP/1 requests may
fail with HTTP/2 errors due to orig-proto upgrading.

To simplify error handling (in an upcoming change), the
`orig_proto::Upgrade` service introduces a new error type,
`orig_proto::DowngradedH2Error` that hides the original error source so
that these errors are not detected as being an `h2::Error`.
@olix0r olix0r requested a review from a team September 6, 2021 19:30
Copy link
Member

@mateiidavid mateiidavid left a comment

Choose a reason for hiding this comment

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

Looks good!

@olix0r olix0r merged commit 578d979 into main Sep 7, 2021
@olix0r olix0r deleted the ver/h2-error branch September 7, 2021 19:36
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Sep 9, 2021
This release improves error handling so that HTTP metrics include 5XX
responses for common errors.

Logging has also been improved to ensure `inbound` and `outbound` spans
are always present in log messages.

Outbound tap has been fixed to include route labels when service
profiles are configured.

---

* Set tracing spans on policy client (linkerd/linkerd2-proxy#1241)
* build(deps): bump tokio-util from 0.6.7 to 0.6.8 (linkerd/linkerd2-proxy#1240)
* core: fix missing spans in `serve` tasks (linkerd/linkerd2-proxy#1243)
* build(deps): bump thiserror from 1.0.28 to 1.0.29 (linkerd/linkerd2-proxy#1244)
* orig-proto: Avoid emiting HTTP/2 errors for upgraded requests (linkerd/linkerd2-proxy#1245)
* Fix route labels on outbound tap metadata (linkerd/linkerd2-proxy#1247)
* errors: Support contextual error handling strategies (linkerd/linkerd2-proxy#1246)
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Sep 9, 2021
This release improves error handling so that HTTP metrics include 5XX
responses for common errors.

Logging has also been improved to ensure `inbound` and `outbound` spans
are always present in log messages.

Outbound tap has been fixed to include route labels when service
profiles are configured.

---

* Set tracing spans on policy client (linkerd/linkerd2-proxy#1241)
* build(deps): bump tokio-util from 0.6.7 to 0.6.8 (linkerd/linkerd2-proxy#1240)
* core: fix missing spans in `serve` tasks (linkerd/linkerd2-proxy#1243)
* build(deps): bump thiserror from 1.0.28 to 1.0.29 (linkerd/linkerd2-proxy#1244)
* orig-proto: Avoid emiting HTTP/2 errors for upgraded requests (linkerd/linkerd2-proxy#1245)
* Fix route labels on outbound tap metadata (linkerd/linkerd2-proxy#1247)
* errors: Support contextual error handling strategies (linkerd/linkerd2-proxy#1246)
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