@ -420,22 +420,16 @@ PickFirst::PickFirst(Args args)
. GetInt ( GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS )
. value_or ( 250 ) ,
100 , 2000 ) ) ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < this < < " created. " ;
}
GRPC_TRACE_LOG ( pick_first , INFO ) < < " Pick First " < < this < < " created. " ;
}
PickFirst : : ~ PickFirst ( ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Destroying Pick First " < < this ;
}
GRPC_TRACE_LOG ( pick_first , INFO ) < < " Destroying Pick First " < < this ;
CHECK ( subchannel_list_ = = nullptr ) ;
}
void PickFirst : : ShutdownLocked ( ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < this < < " Shutting down " ;
}
GRPC_TRACE_LOG ( pick_first , INFO ) < < " Pick First " < < this < < " Shutting down " ;
shutdown_ = true ;
UnsetSelectedSubchannel ( ) ;
subchannel_list_ . reset ( ) ;
@ -444,9 +438,8 @@ void PickFirst::ShutdownLocked() {
void PickFirst : : ExitIdleLocked ( ) {
if ( shutdown_ ) return ;
if ( IsIdle ( ) ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < this < < " exiting idle " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " Pick First " < < this < < " exiting idle " ;
AttemptToConnectUsingLatestUpdateArgsLocked ( ) ;
}
}
@ -681,11 +674,10 @@ PickFirst::SubchannelList::SubchannelData::SubchannelState::SubchannelState(
}
void PickFirst : : SubchannelList : : SubchannelData : : SubchannelState : : Orphan ( ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < pick_first_ . get ( ) < < " ] subchannel state " < < this
< < " (subchannel " < < subchannel_ . get ( )
< < " ): cancelling watch and unreffing subchannel " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < pick_first_ . get ( ) < < " ] subchannel state " < < this
< < " (subchannel " < < subchannel_ . get ( )
< < " ): cancelling watch and unreffing subchannel " ;
subchannel_data_ = nullptr ;
subchannel_ - > CancelConnectivityStateWatch ( watcher_ ) ;
watcher_ = nullptr ;
@ -706,9 +698,8 @@ void PickFirst::SubchannelList::SubchannelData::SubchannelState::Select() {
// for the health status notification.
// If health checking is NOT enabled, report READY.
if ( pick_first_ - > enable_health_watch_ ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < pick_first_ . get ( ) < < " ] starting health watch " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < pick_first_ . get ( ) < < " ] starting health watch " ;
auto watcher = std : : make_unique < HealthWatcher > (
pick_first_ . Ref ( DEBUG_LOCATION , " HealthWatcher " ) ) ;
pick_first_ - > health_watcher_ = watcher . get ( ) ;
@ -767,11 +758,10 @@ void PickFirst::SubchannelList::SubchannelData::SubchannelState::
}
// We aren't trying to connect, so we must be the selected subchannel.
CHECK ( pick_first_ - > selected_ . get ( ) = = this ) ;
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < pick_first_ . get ( )
< < " selected subchannel connectivity changed to "
< < ConnectivityStateName ( new_state ) ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " Pick First " < < pick_first_ . get ( )
< < " selected subchannel connectivity changed to "
< < ConnectivityStateName ( new_state ) ;
// Any state change is considered to be a failure of the existing
// connection. Report the failure.
auto & stats_plugins =
@ -791,11 +781,10 @@ PickFirst::SubchannelList::SubchannelData::SubchannelData(
SubchannelList * subchannel_list , size_t index ,
RefCountedPtr < SubchannelInterface > subchannel )
: subchannel_list_ ( subchannel_list ) , index_ ( index ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < subchannel_list_ - > policy_ . get ( )
< < " ] subchannel list " < < subchannel_list_ < < " index " < < index_
< < " : creating subchannel data " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < subchannel_list_ - > policy_ . get ( ) < < " ] subchannel list "
< < subchannel_list_ < < " index " < < index_
< < " : creating subchannel data " ;
subchannel_state_ =
MakeOrphanable < SubchannelState > ( this , std : : move ( subchannel ) ) ;
}
@ -856,11 +845,10 @@ void PickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
// is not in the new list. In that case, we drop the current
// connection and report IDLE.
if ( p - > selected_ ! = nullptr ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < p < < " ] subchannel list " < < subchannel_list_
< < " : new update has no subchannels in "
< < " state READY; dropping existing connection and going IDLE " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < p < < " ] subchannel list " < < subchannel_list_
< < " : new update has no subchannels in state READY; dropping "
" existing connection and going IDLE " ;
p - > GoIdle ( ) ;
} else {
// Start trying to connect, starting with the first subchannel.
@ -1016,18 +1004,16 @@ PickFirst::SubchannelList::SubchannelList(RefCountedPtr<PickFirst> policy,
address . address ( ) , address . args ( ) , args_ ) ;
if ( subchannel = = nullptr ) {
// Subchannel could not be created.
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < policy_ . get ( )
< < " ] could not create subchannel for address "
< < address . ToString ( ) < < " , ignoring " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < policy_ . get ( )
< < " ] could not create subchannel for address " < < address . ToString ( )
< < " , ignoring " ;
return ;
}
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < policy_ . get ( ) < < " ] subchannel list " < < this
< < " index " < < subchannels_ . size ( ) < < " : Created subchannel "
< < subchannel . get ( ) < < " for address " < < address . ToString ( ) ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < policy_ . get ( ) < < " ] subchannel list " < < this < < " index "
< < subchannels_ . size ( ) < < " : Created subchannel " < < subchannel . get ( )
< < " for address " < < address . ToString ( ) ;
subchannels_ . emplace_back ( std : : make_unique < SubchannelData > (
this , subchannels_ . size ( ) , std : : move ( subchannel ) ) ) ;
} ) ;
@ -1374,23 +1360,17 @@ OldPickFirst::OldPickFirst(Args args)
. GetInt ( GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS )
. value_or ( 250 ) ,
100 , 2000 ) ) ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < this < < " created. " ;
}
GRPC_TRACE_LOG ( pick_first , INFO ) < < " Pick First " < < this < < " created. " ;
}
OldPickFirst : : ~ OldPickFirst ( ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Destroying Pick First " < < this ;
}
GRPC_TRACE_LOG ( pick_first , INFO ) < < " Destroying Pick First " < < this ;
CHECK ( subchannel_list_ = = nullptr ) ;
CHECK ( latest_pending_subchannel_list_ = = nullptr ) ;
}
void OldPickFirst : : ShutdownLocked ( ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < this < < " Shutting down " ;
}
GRPC_TRACE_LOG ( pick_first , INFO ) < < " Pick First " < < this < < " Shutting down " ;
shutdown_ = true ;
UnsetSelectedSubchannel ( ) ;
subchannel_list_ . reset ( ) ;
@ -1400,9 +1380,8 @@ void OldPickFirst::ShutdownLocked() {
void OldPickFirst : : ExitIdleLocked ( ) {
if ( shutdown_ ) return ;
if ( IsIdle ( ) ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < this < < " exiting idle " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " Pick First " < < this < < " exiting idle " ;
AttemptToConnectUsingLatestUpdateArgsLocked ( ) ;
}
}
@ -1597,11 +1576,10 @@ OldPickFirst::SubchannelList::SubchannelData::SubchannelData(
: subchannel_list_ ( subchannel_list ) ,
index_ ( index ) ,
subchannel_ ( std : : move ( subchannel ) ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < subchannel_list_ - > policy_ . get ( )
< < " ] subchannel list " < < subchannel_list_ < < " index " < < index_
< < " (subchannel " < < subchannel_ . get ( ) < < " ): starting watch " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < subchannel_list_ - > policy_ . get ( ) < < " ] subchannel list "
< < subchannel_list_ < < " index " < < index_ < < " (subchannel "
< < subchannel_ . get ( ) < < " ): starting watch " ;
auto watcher = std : : make_unique < Watcher > (
subchannel_list_ - > Ref ( DEBUG_LOCATION , " Watcher " ) , index_ ) ;
pending_watcher_ = watcher . get ( ) ;
@ -1658,11 +1636,9 @@ void OldPickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
// Handle updates for the currently selected subchannel.
if ( p - > selected_ = = this ) {
CHECK ( subchannel_list_ = = p - > subchannel_list_ . get ( ) ) ;
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < p
< < " selected subchannel connectivity changed to "
< < ConnectivityStateName ( new_state ) ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " Pick First " < < p < < " selected subchannel connectivity changed to "
< < ConnectivityStateName ( new_state ) ;
// Any state change is considered to be a failure of the existing
// connection.
stats_plugins . AddCounter (
@ -1677,11 +1653,10 @@ void OldPickFirst::SubchannelList::SubchannelData::OnConnectivityStateChange(
p - > channel_control_helper ( ) - > RequestReresolution ( ) ;
// If there is a pending update, switch to the pending update.
if ( p - > latest_pending_subchannel_list_ ! = nullptr ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < p < < " promoting pending subchannel "
< < " list " < < p - > latest_pending_subchannel_list_ . get ( )
< < " to replace " < < p - > subchannel_list_ . get ( ) ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " Pick First " < < p < < " promoting pending subchannel "
< < " list " < < p - > latest_pending_subchannel_list_ . get ( )
< < " to replace " < < p - > subchannel_list_ . get ( ) ;
p - > UnsetSelectedSubchannel ( ) ;
p - > subchannel_list_ = std : : move ( p - > latest_pending_subchannel_list_ ) ;
// Set our state to that of the pending subchannel list.
@ -1895,11 +1870,10 @@ void OldPickFirst::SubchannelList::SubchannelData::
subchannel_list_ = = p - > latest_pending_subchannel_list_ . get ( ) ) ;
// Case 2. Promote p->latest_pending_subchannel_list_ to p->subchannel_list_.
if ( subchannel_list_ = = p - > latest_pending_subchannel_list_ . get ( ) ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " Pick First " < < p < < " promoting pending subchannel list "
< < p - > latest_pending_subchannel_list_ . get ( ) < < " to replace "
< < p - > subchannel_list_ . get ( ) ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " Pick First " < < p < < " promoting pending subchannel list "
< < p - > latest_pending_subchannel_list_ . get ( ) < < " to replace "
< < p - > subchannel_list_ . get ( ) ;
p - > UnsetSelectedSubchannel ( ) ;
p - > subchannel_list_ = std : : move ( p - > latest_pending_subchannel_list_ ) ;
}
@ -1912,9 +1886,8 @@ void OldPickFirst::SubchannelList::SubchannelData::
// for the health status notification.
// If health checking is NOT enabled, report READY.
if ( p - > enable_health_watch_ ) {
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < p < < " ] starting health watch " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < p < < " ] starting health watch " ;
auto watcher = std : : make_unique < HealthWatcher > (
p - > RefAsSubclass < OldPickFirst > ( DEBUG_LOCATION , " HealthWatcher " ) ) ;
p - > health_watcher_ = watcher . get ( ) ;
@ -1959,18 +1932,16 @@ OldPickFirst::SubchannelList::SubchannelList(
address . address ( ) , address . args ( ) , args_ ) ;
if ( subchannel = = nullptr ) {
// Subchannel could not be created.
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < policy_ . get ( )
< < " ] could not create subchannel for address "
< < address . ToString ( ) < < " , ignoring " ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < policy_ . get ( )
< < " ] could not create subchannel for address " < < address . ToString ( )
< < " , ignoring " ;
return ;
}
if ( GRPC_TRACE_FLAG_ENABLED ( pick_first ) ) {
LOG ( INFO ) < < " [PF " < < policy_ . get ( ) < < " ] subchannel list " < < this
< < " index " < < subchannels_ . size ( ) < < " : Created subchannel "
< < subchannel . get ( ) < < " for address " < < address . ToString ( ) ;
}
GRPC_TRACE_LOG ( pick_first , INFO )
< < " [PF " < < policy_ . get ( ) < < " ] subchannel list " < < this < < " index "
< < subchannels_ . size ( ) < < " : Created subchannel " < < subchannel . get ( )
< < " for address " < < address . ToString ( ) ;
subchannels_ . emplace_back ( this , subchannels_ . size ( ) , std : : move ( subchannel ) ) ;
} ) ;
}