diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 44ce52b1d3..d7ad99072a 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -485,11 +485,12 @@ struct DDTeamCollection { int desiredDataCenters, IRepPolicyRef replicationPolicy, KeyValueStoreType storeType, - PromiseStream< std::pair> > const& serverChanges ) + PromiseStream< std::pair> > const& serverChanges, + Future readyToStart ) :cx(cx), masterId(masterId), lock(lock), output(output), shardsAffectedByTeamFailure(shardsAffectedByTeamFailure), doBuildTeams( true ), teamBuilder( Void() ), teamSize( teamSize ), minDataCenters( minDataCenters ), desiredDataCenters( desiredDataCenters ), replicationPolicy(replicationPolicy), storeType( storeType ), serverChanges(serverChanges), initialFailureReactionDelay( delay( BUGGIFY ? 0 : SERVER_KNOBS->INITIAL_FAILURE_REACTION_DELAY, TaskDataDistribution ) ), healthyTeamCount( 0 ), - initializationDoneActor(logOnCompletion(initialFailureReactionDelay, this)), optimalTeamCount( 0 ), recruitingStream(0), restartRecruiting( SERVER_KNOBS->DEBOUNCE_RECRUITING_DELAY ), + initializationDoneActor(logOnCompletion(readyToStart && initialFailureReactionDelay, this)), optimalTeamCount( 0 ), recruitingStream(0), restartRecruiting( SERVER_KNOBS->DEBOUNCE_RECRUITING_DELAY ), unhealthyServers(0) { TraceEvent("DDTrackerStarting", masterId) @@ -1774,7 +1775,7 @@ ACTOR Future dataDistributionTeamCollection( Future readyToStart ) { state DDTeamCollection self( cx, masterId, lock, output, shardsAffectedByTeamFailure, teamSize, minDataCenters, - desiredDataCenters, replicationPolicy, storeType, serverChanges ); + desiredDataCenters, replicationPolicy, storeType, serverChanges, readyToStart ); state Future loggingTrigger = Void(); state PromiseStream serverRemoved; @@ -2157,7 +2158,8 @@ DDTeamCollection* testTeamCollection(int teamSize, IRepPolicyRef policy, int pro -1, policy, KeyValueStoreType(), - PromiseStream>>() + PromiseStream>>(), + Future(Void()) ); for(int id = 1; id <= processCount; id++) {