Skip to content

Set a grpc-status of UNAVAILABLE only on io errors#498

Merged
olix0r merged 2 commits intomasterfrom
ver/errors-plumbing
May 4, 2020
Merged

Set a grpc-status of UNAVAILABLE only on io errors#498
olix0r merged 2 commits intomasterfrom
ver/errors-plumbing

Conversation

@olix0r
Copy link
Member

@olix0r olix0r commented Apr 30, 2020

In #493, we opted to handle all hyper errors as UNAVAILABLE for gRPC
messages.

This change modifies the signature of http_status & set_grpc_status
so that we can unwrap arbitrary inner errors via Error::source. This
reduces some unnecessary special-casing and allows us to more-narrowly
target IO errors

Special thanks to @LucioFranco for guiding me in the right direction on this.

In #493, we opted to handle all hyper errors as `UNAVAILABLE` for gRPC
messages.

This change modifies the signature of `http_status` & `set_grpc_status`
so that we can unwrap arbitrary inner errors via `Error::source`. This
reduces some unnecessary special-casing and allows us to more-narrowly
target IO errors.
@olix0r olix0r requested review from a team and zaharidichev April 30, 2020 18:53
Copy link
Member

@zaharidichev zaharidichev left a comment

Choose a reason for hiding this comment

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

Nice!

@olix0r olix0r merged commit ef0292a into master May 4, 2020
@olix0r olix0r deleted the ver/errors-plumbing branch May 4, 2020 14:49
olix0r added a commit to linkerd/linkerd2 that referenced this pull request May 7, 2020
This release modifies Linkerd's internal buffering to avoid idling out
services as a request arrives. This could cause failures for requests
that are sent exactly once per minute, such as Prometheus scrapes.

---

* Handle GRPC body errors (linkerd/linkerd2-proxy#493)
* Set a grpc-status of UNAVAILABLE only on io errors (linkerd/linkerd2-proxy#498)
* inbound: Remove unnecessary buffer (linkerd/linkerd2-proxy#501)
* buffer: Move idle timeouts into the buffer (linkerd/linkerd2-proxy#502)
* make: Support CARGO_TARGET for multi-arch builds (linkerd/linkerd2-proxy#497)
* release: Use arch-specific paths (linkerd/linkerd2-proxy#508)
olix0r added a commit to linkerd/linkerd2 that referenced this pull request May 7, 2020
This release modifies Linkerd's internal buffering to avoid idling out
services as a request arrives. This could cause failures for requests
that are sent exactly once per minute, such as Prometheus scrapes.

---

* Set a grpc-status of UNAVAILABLE only on io errors (linkerd/linkerd2-proxy#498)
* inbound: Remove unnecessary buffer (linkerd/linkerd2-proxy#501)
* buffer: Move idle timeouts into the buffer (linkerd/linkerd2-proxy#502)
* make: Support CARGO_TARGET for multi-arch builds (linkerd/linkerd2-proxy#497)
* release: Use arch-specific paths (linkerd/linkerd2-proxy#508)
olix0r added a commit to linkerd/linkerd2 that referenced this pull request May 7, 2020
This release modifies Linkerd's internal buffering to avoid idling out
services as a request arrives. This could cause failures for requests
that are sent exactly once per minute, such as Prometheus scrapes.

---

* Set a grpc-status of UNAVAILABLE only on io errors (linkerd/linkerd2-proxy#498)
* inbound: Remove unnecessary buffer (linkerd/linkerd2-proxy#501)
* buffer: Move idle timeouts into the buffer (linkerd/linkerd2-proxy#502)
* make: Support CARGO_TARGET for multi-arch builds (linkerd/linkerd2-proxy#497)
* release: Use arch-specific paths (linkerd/linkerd2-proxy#508)
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