diff options
Diffstat (limited to 'src/mongo/db/repl/initial_syncer.cpp')
-rw-r--r-- | src/mongo/db/repl/initial_syncer.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/src/mongo/db/repl/initial_syncer.cpp b/src/mongo/db/repl/initial_syncer.cpp index 4b1c882b1eb..1e13256dcaf 100644 --- a/src/mongo/db/repl/initial_syncer.cpp +++ b/src/mongo/db/repl/initial_syncer.cpp @@ -1096,25 +1096,22 @@ void InitialSyncer::_rollbackCheckerCheckForRollbackCallback( // Set UUIDs for all non-replicated collections on secondaries. See comment in // ReplicationCoordinatorExternalStateImpl::initializeReplSetStorage() for the explanation of - // why we do this and why it is not necessary for sharded clusters. - if (serverGlobalParams.clusterRole != ClusterRole::ShardServer) { - const NamespaceString nss("admin", "system.version"); - auto opCtx = makeOpCtx(); - auto statusWithUUID = _storage->getCollectionUUID(opCtx.get(), nss); - if (!statusWithUUID.isOK()) { - // If the admin database does not exist, we intentionally fail initial sync. As part of - // SERVER-29448, we disallow dropping the admin database, so failing here is fine. - onCompletionGuard->setResultAndCancelRemainingWork_inlock(lock, - statusWithUUID.getStatus()); + // why we do this. + const NamespaceString nss("admin", "system.version"); + auto opCtx = makeOpCtx(); + auto statusWithUUID = _storage->getCollectionUUID(opCtx.get(), nss); + if (!statusWithUUID.isOK()) { + // If the admin database does not exist, we intentionally fail initial sync. As part of + // SERVER-29448, we disallow dropping the admin database, so failing here is fine. + onCompletionGuard->setResultAndCancelRemainingWork_inlock(lock, statusWithUUID.getStatus()); + return; + } + if (statusWithUUID.getValue()) { + auto schemaStatus = _storage->upgradeUUIDSchemaVersionNonReplicated(opCtx.get()); + if (!schemaStatus.isOK()) { + onCompletionGuard->setResultAndCancelRemainingWork_inlock(lock, schemaStatus); return; } - if (statusWithUUID.getValue()) { - auto schemaStatus = _storage->upgradeUUIDSchemaVersionNonReplicated(opCtx.get()); - if (!schemaStatus.isOK()) { - onCompletionGuard->setResultAndCancelRemainingWork_inlock(lock, schemaStatus); - return; - } - } } // Success! |