Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

hawkw
Copy link
Contributor

@hawkw hawkw commented Aug 24, 2017

As seen in #1594 – Linkerd occasionally throws ReaderDiscarded exceptions when discarding a response on retries. Since nothing is actually wrong, we want to silence these exceptions.

I've added a Try to the call to response.discard in RetryFilter.scala. The IOException "Connection reset by peer" is not silenced, since it appears to be both thrown and caught in code we don't own & it would be difficult to quash this exception only on retries.

Tested this against the Kubernetes config described by @esbie in #1594 (comment); the RetryDiscarded exception no longer appears in the logs.

Closes #1594.

@hawkw hawkw added this to the 1.2.0 milestone Aug 24, 2017
@hawkw hawkw self-assigned this Aug 24, 2017
@hawkw hawkw requested review from esbie and klingerf August 24, 2017 19:58
Copy link
Contributor

@esbie esbie left a comment

Choose a reason for hiding this comment

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

this lgtm

@hawkw
Copy link
Contributor Author

hawkw commented Aug 24, 2017

I strongly suspect that this patch also fixes #1599; I've asked @prdoyle to confirm.

@hawkw hawkw merged commit 9081344 into master Aug 25, 2017
hawkw added a commit that referenced this pull request Aug 31, 2017
As seen in #1594 – Linkerd occasionally throws `ReaderDiscarded` exceptions when discarding a response on retries. Since nothing is actually wrong, we want to silence these exceptions.

I've added a `Try` to the call to `response.discard` in `RetryFilter.scala`. The `IOException` "Connection reset by peer" is not silenced, since it appears to be both thrown and caught in code we don't own & it would be difficult to quash this exception only on retries.

Tested this against the Kubernetes config described by @esbie in #1594 (comment); the `RetryDiscarded` exception no longer appears in the logs. 

Closes #1594.
@hawkw hawkw mentioned this pull request Sep 7, 2017
hawkw added a commit that referenced this pull request Sep 7, 2017
## 1.2.0 2017-09-07

* **Breaking Change**: `io.l5d.mesh`, `io.l5d.thriftNameInterpreter`, linkerd
  admin, and namerd admin now serve on 127.0.0.1 by default (instead of
  0.0.0.0).
* **Breaking Change**: Removed support for PKCS#1-formatted keys. PKCS#1 formatted keys must be converted to PKCS#8 format.
* Added experimental `io.l5d.dnssrv` namer for DNS SRV records (#1611)
* Kubernetes
  * Added an experimental `io.l5d.k8s.configMap` interpreter for reading dtabs from a Kubernetes ConfigMap (#1603). This interpreter will respond to changes in the ConfigMap, allowing for dynamic dtab updates without the need to run Namerd.
  * Made ingress controller's ingress class annotation configurable (#1584).
  * Fixed an issue where Linkerd would continue routing traffic to endpoints of a service after that service was removed (#1622).
  * Major refactoring and performance improvements to `io.l5d.k8s` and `io.l5d.k8s.ns` namers (#1603).
  * Ingress controller now checks all available ingress resources before using a default backend (#1607).
  * Ingress controller now correctly routes requests with host headers that contain ports (#1607).
* HTTP/2
  * Fixed an issue where long-running H2 streams would eventually hang (#1598).
  * Fixed a memory leak on long-running H2 streams (#1598)
  * Added a user-friendly error message when a HTTP/2 router receives a HTTP/1 request (#1618)
* HTTP/1
  * Removed spurious `ReaderDiscarded` exception logged on HTTP/1 retries (#1609)
* Consul
  * Added support for querying Consul by specific service health states (#1601)
  * Consul namers and Dtab store now fall back to a last known good state on Consul observation errors (#1597)
  * Improved log messages for Consul observation errors (#1597)
* TLS
  * Removed support for PKCS#1 keys (#1590)
  * Added validation to prevent incompatible `disableValidation: true` and `clientAuth` settings in TLS client configurations (#1621)
* Changed `io.l5d.mesh`, `io.l5d.thriftNameInterpreter`, linkerd
  admin, and namerd admin to serve on 127.0.0.1 by default (instead of
  0.0.0.0) (#1366)
* Deprecated `io.l5d.statsd` telemeter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants