diff options
author | jannaerin <golden.janna@gmail.com> | 2023-02-21 23:06:04 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-02-26 22:02:09 +0000 |
commit | 728500f59d1a6be4fd95b8ffa7d3c7dd122b25be (patch) | |
tree | 4cdad6c26d4ab2290e18cf77f11824a1d0144ac6 /src/mongo/db/repl | |
parent | 4fa82ec65ce017b254a14cecafb0ac97bdcb141e (diff) | |
download | mongo-728500f59d1a6be4fd95b8ffa7d3c7dd122b25be.tar.gz |
SERVER-73112 Avoid constructing global namespaces directly
Diffstat (limited to 'src/mongo/db/repl')
16 files changed, 35 insertions, 48 deletions
diff --git a/src/mongo/db/repl/all_database_cloner.cpp b/src/mongo/db/repl/all_database_cloner.cpp index 399ad24f608..7bfa4fd4a43 100644 --- a/src/mongo/db/repl/all_database_cloner.cpp +++ b/src/mongo/db/repl/all_database_cloner.cpp @@ -322,9 +322,9 @@ void AllDatabaseCloner::postStage() { if (!foundAuthSchemaDoc && foundUser) { std::string msg = str::stream() << "During initial sync, found documents in " - << AuthorizationManager::usersCollectionNamespace.ns() + << NamespaceString::kAdminUsersNamespace.ns() << " but could not find an auth schema version document in " - << AuthorizationManager::versionCollectionNamespace.ns() << ". " + << NamespaceString::kServerConfigurationNamespace.ns() << ". " << "This indicates that the primary of this replica set was not " "successfully " "upgraded to schema version " diff --git a/src/mongo/db/repl/initial_syncer_test.cpp b/src/mongo/db/repl/initial_syncer_test.cpp index 0af8f3d03e5..df015013477 100644 --- a/src/mongo/db/repl/initial_syncer_test.cpp +++ b/src/mongo/db/repl/initial_syncer_test.cpp @@ -1308,7 +1308,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughDefaultBeginFetchingOpTimeSc ASSERT_EQUALS(ErrorCodes::OperationFailed, _lastApplied); ASSERT_EQUALS(syncSource, request.target); - ASSERT_EQUALS(NamespaceString::kLocalDb, request.dbname); + ASSERT_EQUALS(DatabaseName::kLocal.db(), request.dbname); assertRemoteCommandNameEquals("find", request); } @@ -1397,7 +1397,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughGetBeginFetchingOpTimeSchedu ASSERT_EQUALS(ErrorCodes::OperationFailed, _lastApplied); ASSERT_EQUALS(syncSource, request.target); - ASSERT_EQUALS(NamespaceString::kConfigDb, request.dbname); + ASSERT_EQUALS(DatabaseName::kConfig.db(), request.dbname); assertRemoteCommandNameEquals("find", request); } diff --git a/src/mongo/db/repl/oplog_batcher_test_fixture.cpp b/src/mongo/db/repl/oplog_batcher_test_fixture.cpp index e62e07bbae7..5bb859ceea4 100644 --- a/src/mongo/db/repl/oplog_batcher_test_fixture.cpp +++ b/src/mongo/db/repl/oplog_batcher_test_fixture.cpp @@ -255,8 +255,7 @@ OplogEntry makeNoopOplogEntry(int t, const StringData& msg) { * Generates an applyOps oplog entry with the given number used for the timestamp. */ OplogEntry makeApplyOpsOplogEntry(int t, bool prepare, const std::vector<OplogEntry>& innerOps) { - auto nss = - NamespaceString::createNamespaceString_forTest(NamespaceString::kAdminDb).getCommandNS(); + auto nss = NamespaceString::createNamespaceString_forTest(DatabaseName::kAdmin).getCommandNS(); BSONObjBuilder oField; BSONArrayBuilder applyOpsBuilder = oField.subarrayStart("applyOps"); for (const auto& op : innerOps) { @@ -338,8 +337,7 @@ OplogEntry makeLargeTransactionOplogEntries(int t, int count, const std::vector<OplogEntry> innerOps) { // TODO SERVER-62491: Replace TenantId with kSystemTenantId. - auto nss = - NamespaceString::createNamespaceString_forTest(NamespaceString::kAdminDb).getCommandNS(); + auto nss = NamespaceString::createNamespaceString_forTest(DatabaseName::kAdmin).getCommandNS(); OpTime prevWriteOpTime = isFirst ? OpTime() : OpTime(Timestamp(t - 1, 1), 1); BSONObj oField; if (isLast && prepared) { diff --git a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp index eaa99483a56..c092a77fe96 100644 --- a/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp @@ -135,8 +135,6 @@ namespace repl { namespace { const char kLocalDbName[] = "local"; -// TODO SERVER-62491 Use SystemTenantId -const DatabaseName kConfigDatabaseName{boost::none, kLocalDbName}; MONGO_FAIL_POINT_DEFINE(dropPendingCollectionReaperHang); @@ -1128,7 +1126,7 @@ void ReplicationCoordinatorExternalStateImpl::_dropAllTempCollections(OperationC for (const auto& dbName : dbNames) { // The local db is special because it isn't replicated. It is cleared at startup even on // replica set members. - if (dbName.db() == NamespaceString::kLocalDb) + if (dbName == DatabaseName::kLocal) continue; LOGV2_DEBUG(21309, @@ -1288,14 +1286,12 @@ bool ReplicationCoordinatorExternalStateImpl::isShardPartOfShardedCluster( bool ReplicationCoordinatorExternalStateImpl::isCWWCSetOnConfigShard( OperationContext* opCtx) const { GetDefaultRWConcern configsvrRequest; - // Empty tenant id is acceptable here as command's tenant id will not be serialized to BSON. - // TODO SERVER-62491: Use system tenant id. - configsvrRequest.setDbName(DatabaseName(boost::none, NamespaceString::kAdminDb)); + configsvrRequest.setDbName(DatabaseName::kAdmin); auto cmdResponse = uassertStatusOK( Grid::get(opCtx)->shardRegistry()->getConfigShard()->runCommandWithFixedRetryAttempts( opCtx, ReadPreferenceSetting(ReadPreference::PrimaryOnly), - NamespaceString::kAdminDb.toString(), + DatabaseName::kAdmin.toString(), configsvrRequest.toBSON({}), Shard::RetryPolicy::kIdempotent)); diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index e82a78da920..3d609a39c19 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -4237,8 +4237,7 @@ void ReplicationCoordinatorImpl::_reconfigToRemoveNewlyAddedField( "An automatic reconfig. Used to remove a 'newlyAdded' config field for a " "replica set member."); curOp->setOpDescription_inlock(bob.obj()); - // TODO SERVER-62491 Use systemTenantId. - curOp->setNS_inlock(NamespaceString(boost::none, "local.system.replset")); + curOp->setNS_inlock(NamespaceString::kSystemReplSetNamespace); curOp->ensureStarted(); } diff --git a/src/mongo/db/repl/rollback_impl_test.cpp b/src/mongo/db/repl/rollback_impl_test.cpp index 1da4b0b2f47..bafd638b045 100644 --- a/src/mongo/db/repl/rollback_impl_test.cpp +++ b/src/mongo/db/repl/rollback_impl_test.cpp @@ -1495,7 +1495,7 @@ RollbackImplTest::_setUpUnpreparedTransactionForCountTest(UUID collId) { ASSERT_OK(_insertOplogEntry(insertOp1.first)); // Common field values for applyOps oplog entries. - auto adminCmdNss = NamespaceString(NamespaceString::kAdminDb).getCommandNS(); + auto adminCmdNss = NamespaceString(DatabaseName::kAdmin).getCommandNS(); OperationSessionInfo sessionInfo; sessionInfo.setSessionId(makeLogicalSessionId(_opCtx.get())); sessionInfo.setTxnNumber(1); diff --git a/src/mongo/db/repl/sync_source_resolver.cpp b/src/mongo/db/repl/sync_source_resolver.cpp index d870eed5bc9..8460ce006d4 100644 --- a/src/mongo/db/repl/sync_source_resolver.cpp +++ b/src/mongo/db/repl/sync_source_resolver.cpp @@ -49,7 +49,6 @@ namespace mongo { namespace repl { -const NamespaceString SyncSourceResolver::kLocalOplogNss("local.oplog.rs"); const Seconds SyncSourceResolver::kFetcherTimeout(30); const Seconds SyncSourceResolver::kFetcherErrorDenylistDuration(10); const Seconds SyncSourceResolver::kOplogEmptyDenylistDuration(10); @@ -169,9 +168,9 @@ std::unique_ptr<Fetcher> SyncSourceResolver::_makeFirstOplogEntryFetcher( return std::make_unique<Fetcher>( _taskExecutor, candidate, - kLocalOplogNss.db().toString(), - BSON("find" << kLocalOplogNss.coll() << "limit" << 1 << "sort" << BSON("$natural" << 1) - << "projection" + NamespaceString::kRsOplogNamespace.dbName().db(), + BSON("find" << NamespaceString::kRsOplogNamespace.coll() << "limit" << 1 << "sort" + << BSON("$natural" << 1) << "projection" << BSON(OplogEntryBase::kTimestampFieldName << 1 << OplogEntryBase::kTermFieldName << 1) << ReadConcernArgs::kReadConcernFieldName << ReadConcernArgs::kLocal), @@ -194,8 +193,8 @@ std::unique_ptr<Fetcher> SyncSourceResolver::_makeRequiredOpTimeFetcher(HostAndP return std::make_unique<Fetcher>( _taskExecutor, candidate, - kLocalOplogNss.db().toString(), - BSON("find" << kLocalOplogNss.coll() << "filter" + NamespaceString::kRsOplogNamespace.dbName().db(), + BSON("find" << NamespaceString::kRsOplogNamespace.coll() << "filter" << BSON("ts" << BSON("$gte" << _requiredOpTime.getTimestamp() << "$lte" << _requiredOpTime.getTimestamp())) << ReadConcernArgs::kReadConcernFieldName << ReadConcernArgs::kLocal), diff --git a/src/mongo/db/repl/sync_source_resolver.h b/src/mongo/db/repl/sync_source_resolver.h index 7a5189dc4e7..d7d86d4c4f0 100644 --- a/src/mongo/db/repl/sync_source_resolver.h +++ b/src/mongo/db/repl/sync_source_resolver.h @@ -97,7 +97,6 @@ struct SyncSourceResolverResponse { */ class SyncSourceResolver { public: - static const NamespaceString kLocalOplogNss; static const Seconds kFetcherTimeout; static const Seconds kFetcherErrorDenylistDuration; static const Seconds kOplogEmptyDenylistDuration; diff --git a/src/mongo/db/repl/sync_source_resolver_test.cpp b/src/mongo/db/repl/sync_source_resolver_test.cpp index b1eec4d4feb..6905e0d1d9f 100644 --- a/src/mongo/db/repl/sync_source_resolver_test.cpp +++ b/src/mongo/db/repl/sync_source_resolver_test.cpp @@ -300,11 +300,11 @@ void _scheduleFirstOplogEntryFetcherResponse(executor::NetworkInterfaceMock* net ASSERT_TRUE(net->hasReadyRequests()); auto request = net->scheduleSuccessfulResponse(makeCursorResponse(0, nss, docs)); ASSERT_EQUALS(currentSyncSource, request.target); - ASSERT_EQUALS(SyncSourceResolver::kLocalOplogNss.db(), request.dbname); + ASSERT_EQUALS(NamespaceString::kRsOplogNamespace.db(), request.dbname); ASSERT_EQUALS(SyncSourceResolver::kFetcherTimeout, request.timeout); auto firstElement = request.cmdObj.firstElement(); ASSERT_EQUALS("find"_sd, firstElement.fieldNameStringData()); - ASSERT_EQUALS(SyncSourceResolver::kLocalOplogNss.coll(), firstElement.String()); + ASSERT_EQUALS(NamespaceString::kRsOplogNamespace.coll(), firstElement.String()); ASSERT_EQUALS(1, request.cmdObj.getIntField("limit")); ASSERT_BSONOBJ_EQ(BSON("$natural" << 1), request.cmdObj.getObjectField("sort")); @@ -681,11 +681,11 @@ void _scheduleRequiredOpTimeFetcherResponse(executor::NetworkInterfaceMock* net, ASSERT_TRUE(net->hasReadyRequests()); auto request = net->scheduleSuccessfulResponse(makeCursorResponse(0, nss, docs)); ASSERT_EQUALS(currentSyncSource, request.target); - ASSERT_EQUALS(SyncSourceResolver::kLocalOplogNss.db(), request.dbname); + ASSERT_EQUALS(NamespaceString::kRsOplogNamespace.db(), request.dbname); ASSERT_EQUALS(SyncSourceResolver::kFetcherTimeout, request.timeout); auto firstElement = request.cmdObj.firstElement(); ASSERT_EQUALS("find"_sd, firstElement.fieldNameStringData()); - ASSERT_EQUALS(SyncSourceResolver::kLocalOplogNss.coll(), firstElement.String()); + ASSERT_EQUALS(NamespaceString::kRsOplogNamespace.coll(), firstElement.String()); auto filter = request.cmdObj.getObjectField("filter"); ASSERT_TRUE(filter.hasField("ts")) << request.cmdObj; auto tsFilter = filter.getObjectField("ts"); @@ -904,7 +904,7 @@ TEST_F(SyncSourceResolverRequiredOpTimeTest, _shouldFailRequest = [](const executor::RemoteCommandRequest& request) { // Fail find commands reading the oplog with filter containing a "ts" predicate. if (StringData{request.cmdObj.getStringField("find")} != - SyncSourceResolver::kLocalOplogNss.coll()) { + NamespaceString::kRsOplogNamespace.coll()) { return false; } diff --git a/src/mongo/db/repl/tenant_file_cloner.cpp b/src/mongo/db/repl/tenant_file_cloner.cpp index 77f37865d46..8857f88e8a3 100644 --- a/src/mongo/db/repl/tenant_file_cloner.cpp +++ b/src/mongo/db/repl/tenant_file_cloner.cpp @@ -173,8 +173,7 @@ void TenantFileCloner::runQuery() { "$_backupFile" << BSON("backupId" << _backupId << "file" << _remoteFileName << "byteOffset" << static_cast<int64_t>(getFileOffset()))); AggregateCommandRequest aggRequest( - NamespaceString::makeCollectionlessAggregateNSS(NamespaceString::kAdminDb), - {backupFileStage}); + NamespaceString::makeCollectionlessAggregateNSS(DatabaseName::kAdmin), {backupFileStage}); aggRequest.setReadConcern(ReadConcernArgs::kImplicitDefault); aggRequest.setWriteConcern(WriteConcernOptions()); diff --git a/src/mongo/db/repl/tenant_file_importer_service.cpp b/src/mongo/db/repl/tenant_file_importer_service.cpp index 74175fc682d..484c0161989 100644 --- a/src/mongo/db/repl/tenant_file_importer_service.cpp +++ b/src/mongo/db/repl/tenant_file_importer_service.cpp @@ -307,7 +307,7 @@ void TenantFileImporterService::_voteImportedFiles(OperationContext* opCtx, auto voteResponse = replCoord->runCmdOnPrimaryAndAwaitResponse( opCtx, - NamespaceString::kAdminDb.toString(), + DatabaseName::kAdmin.db(), cmd.toBSON({}), [](executor::TaskExecutor::CallbackHandle handle) {}, [](executor::TaskExecutor::CallbackHandle handle) {}); diff --git a/src/mongo/db/repl/tenant_migration_access_blocker_util_test.cpp b/src/mongo/db/repl/tenant_migration_access_blocker_util_test.cpp index 29eea68119c..bc5b0dbe7d5 100644 --- a/src/mongo/db/repl/tenant_migration_access_blocker_util_test.cpp +++ b/src/mongo/db/repl/tenant_migration_access_blocker_util_test.cpp @@ -223,7 +223,7 @@ TEST_F(TenantMigrationAccessBlockerUtilTest, TestValidateNssBeingMigrated) { // No tenantId should work for an adminDB. tenant_migration_access_blocker::validateNssIsBeingMigrated( boost::none, - NamespaceString::createNamespaceString_forTest(NamespaceString::kAdminDb, "test"), + NamespaceString::createNamespaceString_forTest(DatabaseName::kAdmin, "test"), UUID::gen()); // No tenantId will throw if it's not an adminDB. @@ -252,7 +252,7 @@ TEST_F(TenantMigrationAccessBlockerUtilTest, TestValidateNssBeingMigrated) { // Finally everything works. tenant_migration_access_blocker::validateNssIsBeingMigrated( kTenantId, - NamespaceString::createNamespaceString_forTest(NamespaceString::kAdminDb, "test"), + NamespaceString::createNamespaceString_forTest(DatabaseName::kAdmin, "test"), migrationId); } diff --git a/src/mongo/db/repl/tenant_migration_donor_service.cpp b/src/mongo/db/repl/tenant_migration_donor_service.cpp index b9e4e899849..65d7b398839 100644 --- a/src/mongo/db/repl/tenant_migration_donor_service.cpp +++ b/src/mongo/db/repl/tenant_migration_donor_service.cpp @@ -785,7 +785,7 @@ ExecutorFuture<void> TenantMigrationDonorService::Instance::_sendRecipientSyncDa repl::ReplicationCoordinator::get(_serviceContext)->getConfigConnectionString(); RecipientSyncData request; - request.setDbName(NamespaceString::kAdminDb); + request.setDbName(DatabaseName::kAdmin); MigrationRecipientCommonData commonData( _migrationUuid, donorConnString.toString(), _readPreference); @@ -828,7 +828,7 @@ ExecutorFuture<void> TenantMigrationDonorService::Instance::_sendRecipientForget repl::ReplicationCoordinator::get(_serviceContext)->getConfigConnectionString(); RecipientForgetMigration request; - request.setDbName(NamespaceString::kAdminDb); + request.setDbName(DatabaseName::kAdmin); MigrationRecipientCommonData commonData( _migrationUuid, donorConnString.toString(), _readPreference); diff --git a/src/mongo/db/repl/tenant_migration_recipient_service.cpp b/src/mongo/db/repl/tenant_migration_recipient_service.cpp index e7cdf3b5445..d49e0b5a59b 100644 --- a/src/mongo/db/repl/tenant_migration_recipient_service.cpp +++ b/src/mongo/db/repl/tenant_migration_recipient_service.cpp @@ -100,8 +100,7 @@ constexpr int kCheckpointTsBackupCursorErrorCode = 6929900; constexpr int kCloseCursorBeforeOpenErrorCode = 50886; NamespaceString getOplogBufferNs(const UUID& migrationUUID) { - return NamespaceString(NamespaceString::kConfigDb, - kOplogBufferPrefix + migrationUUID.toString()); + return NamespaceString(DatabaseName::kConfig, kOplogBufferPrefix + migrationUUID.toString()); } bool isMigrationCompleted(TenantMigrationRecipientStateEnum state) { @@ -1008,7 +1007,7 @@ SemiFuture<void> TenantMigrationRecipientService::Instance::_openBackupCursor( const auto aggregateCommandRequestObj = [] { AggregateCommandRequest aggRequest( - NamespaceString::makeCollectionlessAggregateNSS(NamespaceString::kAdminDb), + NamespaceString::makeCollectionlessAggregateNSS(DatabaseName::kAdmin), {BSON("$backupCursor" << BSONObj())}); // We must set a writeConcern on internal commands. aggRequest.setWriteConcern(WriteConcernOptions()); @@ -1132,7 +1131,7 @@ SemiFuture<void> TenantMigrationRecipientService::Instance::_openBackupCursor( _donorFilenameBackupCursorFileFetcher = std::make_unique<Fetcher>( _backupCursorExecutor.get(), _client->getServerHostAndPort(), - NamespaceString::kAdminDb.toString(), + DatabaseName::kAdmin.toString(), aggregateCommandRequestObj, fetcherCallback, ReadPreferenceSetting(ReadPreference::PrimaryPreferred).toContainingBSON(), diff --git a/src/mongo/db/repl/tenant_migration_recipient_service_shard_merge_test.cpp b/src/mongo/db/repl/tenant_migration_recipient_service_shard_merge_test.cpp index 3903bd238fd..ac8fee4f598 100644 --- a/src/mongo/db/repl/tenant_migration_recipient_service_shard_merge_test.cpp +++ b/src/mongo/db/repl/tenant_migration_recipient_service_shard_merge_test.cpp @@ -446,11 +446,10 @@ void sendReponseToExpectedRequest(const BSONObj& backupCursorResponse, } BSONObj createServerAggregateReply() { - return CursorResponse( - NamespaceString::makeCollectionlessAggregateNSS(NamespaceString::kAdminDb), - 0 /* cursorId */, - {BSON("byteOffset" << 0 << "endOfFile" << true << "data" - << BSONBinData(0, 0, BinDataGeneral))}) + return CursorResponse(NamespaceString::makeCollectionlessAggregateNSS(DatabaseName::kAdmin), + 0 /* cursorId */, + {BSON("byteOffset" << 0 << "endOfFile" << true << "data" + << BSONBinData(0, 0, BinDataGeneral))}) .toBSONAsInitialResponse(); } diff --git a/src/mongo/db/repl/tenant_migration_shard_merge_util.h b/src/mongo/db/repl/tenant_migration_shard_merge_util.h index 2c2da53f7cc..4950d392bf9 100644 --- a/src/mongo/db/repl/tenant_migration_shard_merge_util.h +++ b/src/mongo/db/repl/tenant_migration_shard_merge_util.h @@ -58,8 +58,7 @@ inline bool isDonatedFilesCollection(const NamespaceString& ns) { } inline NamespaceString getDonatedFilesNs(const UUID& migrationUUID) { - return NamespaceString(NamespaceString::kConfigDb, - kDonatedFilesPrefix + migrationUUID.toString()); + return NamespaceString(DatabaseName::kConfig, kDonatedFilesPrefix + migrationUUID.toString()); } inline boost::filesystem::path fileClonerTempDir(const UUID& migrationId) { |