From 6940a21899491ade7aab2fb95bfffc7fcd8d2e5c Mon Sep 17 00:00:00 2001 From: Benety Goh Date: Mon, 4 Oct 2021 14:47:20 -0400 Subject: Revert "SERVER-58385 StorageInterface::setIndexIsMultikey() accepts collection UUID" This reverts commit a53ec12efc9f58a56fa7255ffed2e926d33e8269. --- src/mongo/db/repl/oplog_applier_impl.cpp | 1 - src/mongo/db/repl/storage_interface.h | 1 - src/mongo/db/repl/storage_interface_impl.cpp | 18 ++++--------- src/mongo/db/repl/storage_interface_impl.h | 1 - src/mongo/db/repl/storage_interface_impl_test.cpp | 32 +++++++++-------------- src/mongo/db/repl/storage_interface_mock.h | 1 - 6 files changed, 17 insertions(+), 37 deletions(-) diff --git a/src/mongo/db/repl/oplog_applier_impl.cpp b/src/mongo/db/repl/oplog_applier_impl.cpp index f3ff709844a..d94e3b24b0d 100644 --- a/src/mongo/db/repl/oplog_applier_impl.cpp +++ b/src/mongo/db/repl/oplog_applier_impl.cpp @@ -769,7 +769,6 @@ StatusWith OplogApplierImpl::_applyOplogBatch(OperationContext* opCtx, fassert(50686, _storageInterface->setIndexIsMultikey(opCtx, info.nss, - info.collectionUUID, info.indexName, info.multikeyMetadataKeys, info.multikeyPaths, diff --git a/src/mongo/db/repl/storage_interface.h b/src/mongo/db/repl/storage_interface.h index dd99ccd0152..5b6f8ec07ad 100644 --- a/src/mongo/db/repl/storage_interface.h +++ b/src/mongo/db/repl/storage_interface.h @@ -184,7 +184,6 @@ public: */ virtual Status setIndexIsMultikey(OperationContext* opCtx, const NamespaceString& nss, - const UUID& collectionUUID, const std::string& indexName, const KeyStringSet& multikeyMetadataKeys, const MultikeyPaths& paths, diff --git a/src/mongo/db/repl/storage_interface_impl.cpp b/src/mongo/db/repl/storage_interface_impl.cpp index 3f53b30474f..b11ab834531 100644 --- a/src/mongo/db/repl/storage_interface_impl.cpp +++ b/src/mongo/db/repl/storage_interface_impl.cpp @@ -561,7 +561,6 @@ Status StorageInterfaceImpl::renameCollection(OperationContext* opCtx, Status StorageInterfaceImpl::setIndexIsMultikey(OperationContext* opCtx, const NamespaceString& nss, - const UUID& collectionUUID, const std::string& indexName, const KeyStringSet& multikeyMetadataKeys, const MultikeyPaths& paths, @@ -569,19 +568,13 @@ Status StorageInterfaceImpl::setIndexIsMultikey(OperationContext* opCtx, if (ts.isNull()) { return Status(ErrorCodes::InvalidOptions, str::stream() << "Cannot set index " << indexName << " on " << nss.ns() - << " (" << collectionUUID << ") as multikey at null timestamp"); + << " as multikey at null timestamp"); } return writeConflictRetry(opCtx, "StorageInterfaceImpl::setIndexIsMultikey", nss.ns(), [&] { - const NamespaceStringOrUUID nsOrUUID(nss); - boost::optional autoColl; - try { - autoColl.emplace(opCtx, nsOrUUID, MODE_IX); - } catch (ExceptionFor& ex) { - return ex.toStatus(); - } + AutoGetCollection autoColl(opCtx, nss, MODE_IX); auto collectionResult = getCollection( - *autoColl, nsOrUUID, "The collection must exist before setting an index to multikey."); + autoColl, nss, "The collection must exist before setting an index to multikey."); if (!collectionResult.isOK()) { return collectionResult.getStatus(); } @@ -597,9 +590,8 @@ Status StorageInterfaceImpl::setIndexIsMultikey(OperationContext* opCtx, opCtx, indexName, true /* includeUnfinishedIndexes */); if (!idx) { return Status(ErrorCodes::IndexNotFound, - str::stream() - << "Could not find index " << indexName << " in " << nss.ns() << " (" - << collectionUUID << ") to set to multikey."); + str::stream() << "Could not find index " << indexName << " in " + << nss.ns() << " to set to multikey."); } collection->getIndexCatalog()->setMultikeyPaths(opCtx, idx, multikeyMetadataKeys, paths); wunit.commit(); diff --git a/src/mongo/db/repl/storage_interface_impl.h b/src/mongo/db/repl/storage_interface_impl.h index b7781e5a4b5..c9d4b7749fc 100644 --- a/src/mongo/db/repl/storage_interface_impl.h +++ b/src/mongo/db/repl/storage_interface_impl.h @@ -94,7 +94,6 @@ public: Status setIndexIsMultikey(OperationContext* opCtx, const NamespaceString& nss, - const UUID& collectionUUID, const std::string& indexName, const KeyStringSet& multikeyMetadataKeys, const MultikeyPaths& paths, diff --git a/src/mongo/db/repl/storage_interface_impl_test.cpp b/src/mongo/db/repl/storage_interface_impl_test.cpp index 74df47cbdb3..6a7ab527f0d 100644 --- a/src/mongo/db/repl/storage_interface_impl_test.cpp +++ b/src/mongo/db/repl/storage_interface_impl_test.cpp @@ -2606,9 +2606,8 @@ TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeyReturnsNamespaceNotFoundForMi auto opCtx = getOperationContext(); StorageInterfaceImpl storage; auto nss = makeNamespace(_agent); - ASSERT_EQUALS( - ErrorCodes::NamespaceNotFound, - storage.setIndexIsMultikey(opCtx, nss, UUID::gen(), "foo", {}, {}, Timestamp(3, 3))); + ASSERT_EQUALS(ErrorCodes::NamespaceNotFound, + storage.setIndexIsMultikey(opCtx, nss, "foo", {}, {}, Timestamp(3, 3))); } TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeyReturnsNamespaceNotFoundForMissingCollection) { @@ -2617,39 +2616,33 @@ TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeyReturnsNamespaceNotFoundForMi auto nss = makeNamespace(_agent); NamespaceString wrongColl(nss.db(), "wrongColl"_sd); ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); - ASSERT_EQUALS( - ErrorCodes::NamespaceNotFound, - storage.setIndexIsMultikey(opCtx, wrongColl, UUID::gen(), "foo", {}, {}, Timestamp(3, 3))); + ASSERT_EQUALS(ErrorCodes::NamespaceNotFound, + storage.setIndexIsMultikey(opCtx, wrongColl, "foo", {}, {}, Timestamp(3, 3))); } TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeyReturnsIndexNotFoundForMissingIndex) { auto opCtx = getOperationContext(); StorageInterfaceImpl storage; auto nss = makeNamespace(_agent); - auto options = generateOptionsWithUuid(); - ASSERT_OK(storage.createCollection(opCtx, nss, options)); - ASSERT_EQUALS( - ErrorCodes::IndexNotFound, - storage.setIndexIsMultikey(opCtx, nss, *options.uuid, "foo", {}, {}, Timestamp(3, 3))); + ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); + ASSERT_EQUALS(ErrorCodes::IndexNotFound, + storage.setIndexIsMultikey(opCtx, nss, "foo", {}, {}, Timestamp(3, 3))); } TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeyReturnsInvalidOptionsForNullTimestamp) { auto opCtx = getOperationContext(); StorageInterfaceImpl storage; auto nss = makeNamespace(_agent); - auto options = generateOptionsWithUuid(); - ASSERT_OK(storage.createCollection(opCtx, nss, options)); - ASSERT_EQUALS( - ErrorCodes::InvalidOptions, - storage.setIndexIsMultikey(opCtx, nss, *options.uuid, "foo", {}, {}, Timestamp())); + ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); + ASSERT_EQUALS(ErrorCodes::InvalidOptions, + storage.setIndexIsMultikey(opCtx, nss, "foo", {}, {}, Timestamp())); } TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeySucceeds) { auto opCtx = getOperationContext(); StorageInterfaceImpl storage; auto nss = makeNamespace(_agent); - auto options = generateOptionsWithUuid(); - ASSERT_OK(storage.createCollection(opCtx, nss, options)); + ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); auto indexName = "a_b_1"; auto indexSpec = BSON("name" << indexName << "key" << BSON("a.b" << 1) << "v" @@ -2657,8 +2650,7 @@ TEST_F(StorageInterfaceImplTest, SetIndexIsMultikeySucceeds) { ASSERT_EQUALS(_createIndexOnEmptyCollection(opCtx, nss, indexSpec), 2); MultikeyPaths paths = {{1}}; - ASSERT_OK(storage.setIndexIsMultikey( - opCtx, nss, *options.uuid, indexName, {}, paths, Timestamp(3, 3))); + ASSERT_OK(storage.setIndexIsMultikey(opCtx, nss, indexName, {}, paths, Timestamp(3, 3))); AutoGetCollectionForReadCommand autoColl(opCtx, nss); ASSERT_TRUE(autoColl.getCollection()); auto indexCatalog = autoColl.getCollection()->getIndexCatalog(); diff --git a/src/mongo/db/repl/storage_interface_mock.h b/src/mongo/db/repl/storage_interface_mock.h index c78338bf79c..11bb6213690 100644 --- a/src/mongo/db/repl/storage_interface_mock.h +++ b/src/mongo/db/repl/storage_interface_mock.h @@ -190,7 +190,6 @@ public: Status setIndexIsMultikey(OperationContext* opCtx, const NamespaceString& nss, - const UUID& collectionUUID, const std::string& indexName, const KeyStringSet& multikeyMetadataKeys, const MultikeyPaths& paths, -- cgit v1.2.1