gracefulswitch, stub: remove last UpdateSubConnState references (#6533)

This commit is contained in:
Doug Fawley 2023-08-10 12:07:49 -07:00 committed by GitHub
parent 490069967e
commit 68704f8ede
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 17 deletions

View File

@ -889,7 +889,7 @@ func (mb1 *mockBalancer) ResolverError(err error) {
} }
func (mb1 *mockBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { func (mb1 *mockBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {
mb1.scStateCh.Send(subConnWithState{sc: sc, state: state}) panic(fmt.Sprintf("UpdateSubConnState(%v, %+v) called unexpectedly", sc, state))
} }
func (mb1 *mockBalancer) Close() { func (mb1 *mockBalancer) Close() {
@ -951,7 +951,9 @@ func (mb1 *mockBalancer) updateState(state balancer.State) {
func (mb1 *mockBalancer) newSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (sc balancer.SubConn, err error) { func (mb1 *mockBalancer) newSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (sc balancer.SubConn, err error) {
if opts.StateListener == nil { if opts.StateListener == nil {
opts.StateListener = func(state balancer.SubConnState) { mb1.UpdateSubConnState(sc, state) } opts.StateListener = func(state balancer.SubConnState) {
mb1.scStateCh.Send(subConnWithState{sc: sc, state: state})
}
} }
defer func() { defer func() {
if sc != nil { if sc != nil {
@ -994,13 +996,13 @@ func (verifyBalancerBuilder) Name() string {
return verifyBalName return verifyBalName
} }
// verifyBalancer is a balancer that verifies that after a Close() call, an // verifyBalancer is a balancer that verifies that after a Close() call, a
// updateSubConnState() call never happens. // StateListener() call never happens.
type verifyBalancer struct { type verifyBalancer struct {
closed *grpcsync.Event closed *grpcsync.Event
// Hold onto the ClientConn wrapper to communicate with it. // Hold onto the ClientConn wrapper to communicate with it.
cc balancer.ClientConn cc balancer.ClientConn
// To fail the test if UpdateSubConnState gets called after Close(). // To fail the test if StateListener gets called after Close().
t *testing.T t *testing.T
} }
@ -1011,9 +1013,7 @@ func (vb *verifyBalancer) UpdateClientConnState(ccs balancer.ClientConnState) er
func (vb *verifyBalancer) ResolverError(err error) {} func (vb *verifyBalancer) ResolverError(err error) {}
func (vb *verifyBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { func (vb *verifyBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {
if vb.closed.HasFired() { panic(fmt.Sprintf("UpdateSubConnState(%v, %+v) called unexpectedly", sc, state))
vb.t.Fatal("UpdateSubConnState was called after Close(), which breaks the balancer API")
}
} }
func (vb *verifyBalancer) Close() { func (vb *verifyBalancer) Close() {
@ -1022,7 +1022,11 @@ func (vb *verifyBalancer) Close() {
func (vb *verifyBalancer) newSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (sc balancer.SubConn, err error) { func (vb *verifyBalancer) newSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (sc balancer.SubConn, err error) {
if opts.StateListener == nil { if opts.StateListener == nil {
opts.StateListener = func(state balancer.SubConnState) { vb.UpdateSubConnState(sc, state) } opts.StateListener = func(state balancer.SubConnState) {
if vb.closed.HasFired() {
vb.t.Fatalf("StateListener(%+v) was called after Close(), which breaks the balancer API", state)
}
}
} }
defer func() { sc.Connect() }() defer func() { sc.Connect() }()
return vb.cc.NewSubConn(addrs, opts) return vb.cc.NewSubConn(addrs, opts)
@ -1064,7 +1068,9 @@ func (bcb *buildCallbackBal) UpdateClientConnState(ccs balancer.ClientConnState)
func (bcb *buildCallbackBal) ResolverError(err error) {} func (bcb *buildCallbackBal) ResolverError(err error) {}
func (bcb *buildCallbackBal) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {} func (bcb *buildCallbackBal) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {
panic(fmt.Sprintf("UpdateSubConnState(%v, %+v) called unexpectedly", sc, state))
}
func (bcb *buildCallbackBal) Close() { func (bcb *buildCallbackBal) Close() {
bcb.closeCh.Send(struct{}{}) bcb.closeCh.Send(struct{}{})
@ -1075,9 +1081,6 @@ func (bcb *buildCallbackBal) updateState(state balancer.State) {
} }
func (bcb *buildCallbackBal) newSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (sc balancer.SubConn, err error) { func (bcb *buildCallbackBal) newSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (sc balancer.SubConn, err error) {
if opts.StateListener == nil {
opts.StateListener = func(state balancer.SubConnState) { bcb.UpdateSubConnState(sc, state) }
}
defer func() { defer func() {
if sc != nil { if sc != nil {
sc.Connect() sc.Connect()

View File

@ -21,6 +21,7 @@ package stub
import ( import (
"encoding/json" "encoding/json"
"fmt"
"google.golang.org/grpc/balancer" "google.golang.org/grpc/balancer"
"google.golang.org/grpc/serviceconfig" "google.golang.org/grpc/serviceconfig"
@ -38,7 +39,6 @@ type BalancerFuncs struct {
UpdateClientConnState func(*BalancerData, balancer.ClientConnState) error UpdateClientConnState func(*BalancerData, balancer.ClientConnState) error
ResolverError func(*BalancerData, error) ResolverError func(*BalancerData, error)
UpdateSubConnState func(*BalancerData, balancer.SubConn, balancer.SubConnState)
Close func(*BalancerData) Close func(*BalancerData)
ExitIdle func(*BalancerData) ExitIdle func(*BalancerData)
} }
@ -72,9 +72,7 @@ func (b *bal) ResolverError(e error) {
} }
func (b *bal) UpdateSubConnState(sc balancer.SubConn, scs balancer.SubConnState) { func (b *bal) UpdateSubConnState(sc balancer.SubConn, scs balancer.SubConnState) {
if b.bf.UpdateSubConnState != nil { panic(fmt.Sprintf("UpdateSubConnState(%v, %+v) called unexpectedly", sc, scs))
b.bf.UpdateSubConnState(b.bd, sc, scs)
}
} }
func (b *bal) Close() { func (b *bal) Close() {