Comments (7)
The failure detector is designed to help detect network issues, especially in cases where requests are infrequent. In your situation it sounds like your network is fairly reliable. I think turning it off should be fairly safe for you, especially if your connections don't have long periods of idleness.
from linkerd.
I created PR #2399 with the fix/workaround I mentioned in the description. I haven't been able to reproduce the issue with that patch.
However, I'm not sure if this is the best way to fix the problem. As said, it's still possible that flushing 128 messages delays ping for too long, especially if RTT is already high. However, to me it sounds anyway reasonable to limit the time one task can be running in event loop but I'm not too familiar with netty/linkerd internals.
from linkerd.
Thanks for this fantastic and detailed report, @hmhagberg! I will look into your PR but we'll have to be cautious with this kind of change because the details of buffering and flushing are subtle. As a workaround, you can disable H2 failure detection by starting Linkerd with this flag -com.twitter.finagle.liveness.sessionFailureDetector=none
.
from linkerd.
I will look into your PR but we'll have to be cautious with this kind of change because the details of buffering and flushing are subtle.
Yes, absolutely. I noticed that when debugging this :)
Thanks for the workaround. That was unknown to us but it seems to avoid the issue.
from linkerd.
@hmhagberg glad to hear that the workaround avoids the issue. With regard to the PR, that code is pretty sensitive, so we prefer to leave it as is.
If you find that the workaround is not sufficient, please add a comment to this ticket and we'll revisit.
from linkerd.
Understandable.
I'd like a clarification on the downsides of the workaround though. If I've understood correctly, the ping failure detector is only used for load balancing. In cases where there is only one endpoint available, the failure detector does not bring much benefit since requests would be failing anyway if that endpoint dies?
from linkerd.
Ping @cpretzer, any comments on the question above? Atm we are planning on rolling out the workaround but it would be good to know if it potentially has any other effects.
from linkerd.
Related Issues (20)
- GC log is rotated too often on Java >= 9
- Linkerd doesn't work with .NET Core Grpc Service HOT 5
- pull-destination-proto.sh should use a pinned version
- linkerd tap tls error HOT 2
- Linkerd sporadically stops watching remote addresses in Namerd with thrift interpreter HOT 3
- Future of Linkerd 1.x HOT 3
- Name resolution for endpoints with io.l5d.fs namer HOT 1
- Services and opaque ports HOT 1
- Require image for ARM64 architecture HOT 1
- Does Linkerd implement SPIFFE ID? HOT 1
- Feature: DNS filtering HOT 3
- Assess Linkerd 1.x vulnerability to CVE-2021-44228 HOT 8
- Mitigating log4j vulnerability in linkerd1 HOT 1
- Request upgrade of all log4j 1.x to at least log4j 2.17.1, or patch vulnerabilities HOT 7
- We are running Namerd & Consul cluster in our environment ,getting below error frequently and that break application communication
- serverSession: idleTimeMs times out while there is activity
- Drop capabilities HOT 1
- Namerd version admin port HOT 2
- ZooKeeper server set namer `io.l5d.serversets` appears to leak ZooKeeper watches HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linkerd.