From aa1c903b525fa1e4703d4133fff820f58af0fefd Mon Sep 17 00:00:00 2001 From: Evan Tschannen Date: Fri, 30 Jun 2017 16:21:59 -0700 Subject: [PATCH] fix: do not log that data distribution is initialized until readyToStart is ready --- fdbserver/DataDistribution.actor.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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++) {