diff --git a/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc b/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc index fdbe2c2a7c3..2e530320f88 100644 --- a/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +++ b/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc @@ -521,12 +521,8 @@ void RingHash::RingHashSubchannelList::StartWatchingLocked() { subchannel(i)->StartConnectivityWatchLocked(); } } - RingHash* p = static_cast(policy()); - // Sending up the initial picker while all subchannels are in IDLE state. - p->channel_control_helper()->UpdateState( - GRPC_CHANNEL_READY, absl::Status(), - absl::make_unique(p->Ref(DEBUG_LOCATION, "RingHashPicker"), - p->ring_)); + // Send updated state to parent based on reported subchannel states. + UpdateRingHashConnectivityStateLocked(); } void RingHash::RingHashSubchannelList::UpdateStateCountersLocked(