-
Notifications
You must be signed in to change notification settings - Fork 9.7k
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
clientv3: clientv3.New() won't return error when no endpoint is available #9877
Comments
That said, I'm not certain the right thing happens even with that option set. |
Confirmed We plan to document this clearly (ref #9829). Also, need more research about enabling it by default (since you cannot disable |
- master HEAD has a bug that DialTimeout does not work etcd-io/etcd#9829 etcd-io/etcd#9877
Using |
@philippgille Looks like you've hit an issue with go dependency management in your project. In particular, it looks like a vendoring issue since |
@philippgille, based on this comment, I solved the problem like this:
|
Closing via 4b0af5b |
What's observed
With
clientv3
on the master branch (7648841),clientv3.New()
won't return any error even when no endpoint is available to connect.The following reproduction code doesn't panic with master, while the same code with v3.3.x panics.
Breaking Change?
I assume this behavior change has been introduced along with the new load balancer. It makes sense that the load balancer internally handles connection errors and hide them from users, because the load balancer is responsible for endpoint selection and reconnection.
(I myself is fine with this behavior, since following requests will fail when no endpoint is available and we can detect the problem at that timing)
However, this looks a breaking change for users. I assume some code has different error handlers when no endpoint is available at the startup of applications (like just die instead of retry).
I therefore think that at least this change is mentioned in the CHANGELOG as a breaking change.
The text was updated successfully, but these errors were encountered: