diff --git a/fdbserver/storageserver.actor.cpp b/fdbserver/storageserver.actor.cpp index 177ffa3980..acfe09c5d1 100644 --- a/fdbserver/storageserver.actor.cpp +++ b/fdbserver/storageserver.actor.cpp @@ -836,7 +836,7 @@ public: Promise coreStarted; bool shuttingDown; - Promise registerInterfaceAcceptingRequests; + Promise registerInterfaceAcceptingRequests; Future interfaceRegistered; bool behind; @@ -6803,12 +6803,10 @@ ACTOR Future update(StorageServer* data, bool* pReceivedUpdate) { if ((data->lastTLogVersion - data->version.get()) < SERVER_KNOBS->STORAGE_RECOVERY_VERSION_LAG_LIMIT) { if (data->registerInterfaceAcceptingRequests.canBeSet()) { - data->registerInterfaceAcceptingRequests.send(true); + data->registerInterfaceAcceptingRequests.send(Void()); ErrorOr e = wait(errorOr(data->interfaceRegistered)); if (e.isError()) { - TraceEvent(SevWarn, "StorageInterfaceRegistrationFailed") - .detail("ServerID", data->thisServerID) - .detail("Error", e.getError().code()); + TraceEvent(SevWarn, "StorageInterfaceRegistrationFailed", data->thisServerID).error(e.getError()); } } } @@ -8623,10 +8621,10 @@ ACTOR Future replaceTSSInterface(StorageServer* self, StorageServerInterfa ACTOR Future storageInterfaceRegistration(StorageServer* self, StorageServerInterface ssi, - Future interfaceAcceptingRequests) { + Optional> readyToAcceptRequests) { - bool acceptingRequests = wait(interfaceAcceptingRequests); - if (acceptingRequests) { + if (readyToAcceptRequests.present()) { + wait(readyToAcceptRequests.get()); ssi.startAcceptingRequests(); } else { ssi.stopAcceptingRequests(); @@ -8673,7 +8671,7 @@ ACTOR Future storageServer(IKeyValueStore* persistentData, if (seedTag == invalidTag) { ssi.startAcceptingRequests(); - self.registerInterfaceAcceptingRequests.send(true); + self.registerInterfaceAcceptingRequests.send(Void()); // Might throw recruitment_failed in case of simultaneous master failure std::pair verAndTag = wait(addStorageServer(self.cx, ssi)); @@ -8789,10 +8787,8 @@ ACTOR Future storageServer(IKeyValueStore* persistentData, if (recovered.canBeSet()) recovered.send(Void()); - state Promise registerInterface; - state Future f = storageInterfaceRegistration(&self, ssi, registerInterface.getFuture()); + state Future f = storageInterfaceRegistration(&self, ssi, {}); wait(delay(0)); - registerInterface.send(false); ErrorOr e = wait(errorOr(f)); if (e.isError()) { Error e = f.getError();