Commit b453c04
authored
errors: always teardown connections on errors (#939)
Currently, the proxy tears down connections on unhandled errors, unless
those errors are timeouts. We special-case errors which are timeouts and
don't close connection in those cases. However, this can result in
connections failing to be torn down when the host is unreachable. If the
proxy continues trying to reconnect after a connection error, the
connection error won't be what makes it to the errors layer --- instead,
the request will eventually time out while reconnecting. This gets the
request 503ed, but the connection remains open --- which, when a client
is trying to talk to a stale endpoint, results in the connection
entering a stuck state.
This branch fixes this by removing the special-case logic for timeouts,
and always tearing down connections. I validated this change using the
repro in linkerd/linkerd2#5871 and confirmed that the issue is resolved
after removing the special handling for timeouts.
This fixes linkerd/linkerd2#5871.1 parent ebf67d6 commit b453c04
1 file changed
+3
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
199 | 197 | | |
200 | 198 | | |
201 | 199 | | |
| |||
223 | 221 | | |
224 | 222 | | |
225 | 223 | | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | 224 | | |
237 | 225 | | |
238 | 226 | | |
| |||
0 commit comments