summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/collection_cloner.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-14 14:26:38 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-14 14:26:38 -0300
commit294bc6ecabf14c09c9bc8644704921dcf97cb44e (patch)
tree279b1e0bab53901a1647ac63c1c724f0f789a663 /src/mongo/db/repl/collection_cloner.cpp
parent70be7c27a251621187a1de533462ae2bb1e3bd39 (diff)
parent1e917fd798aa25b7066d4b414b51184f13d5a092 (diff)
Update upstream source from tag 'upstream/6.0.10'debian/6.0.10-1
Update to upstream version '6.0.10' with Debian dir 2d176fa254eee97b139f712fec5709641335a8c3
Diffstat (limited to 'src/mongo/db/repl/collection_cloner.cpp')
-rw-r--r--src/mongo/db/repl/collection_cloner.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mongo/db/repl/collection_cloner.cpp b/src/mongo/db/repl/collection_cloner.cpp
index 0066240cc2f..fe1cc4b34a2 100644
--- a/src/mongo/db/repl/collection_cloner.cpp
+++ b/src/mongo/db/repl/collection_cloner.cpp
@@ -29,6 +29,8 @@
#define MONGO_LOGV2_DEFAULT_COMPONENT ::mongo::logv2::LogComponent::kReplicationInitialSync
+#include "mongo/db/index/index_descriptor_fwd.h"
+#include "mongo/db/service_context.h"
#include "mongo/platform/basic.h"
#include "mongo/base/string_data.h"
@@ -206,8 +208,20 @@ BaseCloner::AfterStageBehavior CollectionCloner::listIndexesStage() {
"source"_attr = getSource());
}
+ const auto storageEngine = getGlobalServiceContext()->getStorageEngine();
// Parse the index specs into their respective state, ready or unfinished.
for (auto&& spec : indexSpecs) {
+ // Sanitize storage engine options to remove options which might not apply to this node. See
+ // SERVER-68122.
+ if (auto storageEngineElem = spec.getField(IndexDescriptor::kStorageEngineFieldName)) {
+ auto sanitizedStorageEngineOpts =
+ storageEngine->getSanitizedStorageOptionsForSecondaryReplication(
+ storageEngineElem.embeddedObject());
+ fassert(6812200, sanitizedStorageEngineOpts);
+ spec = spec.addFields(BSON(IndexDescriptor::kStorageEngineFieldName
+ << sanitizedStorageEngineOpts.getValue()));
+ }
+
if (spec.hasField("clustered")) {
invariant(_collectionOptions.clusteredIndex);
invariant(spec.getBoolField("clustered") == true);