-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
New balancer wrapper tearDown does not call down function from Up #1649
Comments
grpc-go/balancer_v1_wrapper.go Lines 243 to 249 in 4318e64
It's called with Did you see that your |
Right. We are also seeing that. But our current balancer logic was built, based on v1.6.0 logic. Was there any reason why |
|
v1.6.0 has this in Lines 651 to 653 in 84671c5
So when we delete connections, v1.6.0 v1.7.2 has this in grpc-go/balancer_v1_wrapper.go Lines 216 to 218 in 57ebb0f
And grpc-go/balancer_conn_wrappers.go Lines 178 to 185 in 57ebb0f
Lines 646 to 655 in 57ebb0f
But v1.7.2 So, I meant to say |
The So, when a |
Then grpc-go/balancer_v1_wrapper.go Lines 236 to 242 in 57ebb0f
This is different than how v1.6.0 handles drained connections, right? Please correct me if I am wrong. Thanks! |
v1.6.0 calls In balancer wrapper, |
If you mean the timing is different, that might be right. |
@menghanl I will see if our client can internally handle this. |
What version of gRPC are you using?
v1.7.2
What version of Go are you using (
go version
)?Go 1.9.2
What operating system (Linux, Windows, …) and version?
What did you do?
etcd with grpc v1.6.0 implements old(v1) balancer interface with
Up
,Get
,Notify
, etc..Now we are upgrading to v1.7.2, while keeping current etcd implementation--temporarily, we will rewrite balancer to use new interface.
What did you expect to see?
Same behavior in etcd client balancer with gRPC's v1.7.2 balancer v1 wrapper.
What did you see instead?
A lot of etcd test failures.
Our balancer depends on
v1.6.0
lbWatcher
where it creates/drains connections fromNotify
channel. And it callsdown
function to propagategrpc: the connection is drained
error to the balancer. We use this error to unpin/switch endpoints.v1.7.2
lbWatcher
creates/drains connections the same way, excepttearDown
. It callsRemoveSubConn
andtearDown
, but notdown
function ongrpc: the connection is drained
.Relevant changes:
v1.6.0
grpc-go/clientconn.go
Lines 1212 to 1221 in 84671c5
v1.7.2
grpc-go/clientconn.go
Lines 644 to 655 in 5ffe308
grpc-go/clientconn.go
Lines 1109 to 1130 in 5ffe308
Isn't v1 balancer wrapper supposed to keep the old behavior?
Could anybody help understand why
down(errConnDrain)
was removed?Thanks in advance!
/cc @xiang90
The text was updated successfully, but these errors were encountered: