summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/migration_destination_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/migration_destination_manager.cpp')
-rw-r--r--src/mongo/db/s/migration_destination_manager.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/mongo/db/s/migration_destination_manager.cpp b/src/mongo/db/s/migration_destination_manager.cpp
index f4ce80806b9..17b59d6eee4 100644
--- a/src/mongo/db/s/migration_destination_manager.cpp
+++ b/src/mongo/db/s/migration_destination_manager.cpp
@@ -1171,15 +1171,20 @@ void MigrationDestinationManager::_migrateDriver(OperationContext* outerOpCtx) {
}
return toInsert;
}());
+ {
+ // Disable the schema validation for opCtx for performInserts()
+ DisableDocumentValidation documentValidationDisabler(opCtx);
- const WriteResult reply = performInserts(opCtx, insertOp, true);
+ const WriteResult reply = performInserts(opCtx, insertOp, true);
- for (unsigned long i = 0; i < reply.results.size(); ++i) {
- uassertStatusOKWithContext(
- reply.results[i],
- str::stream() << "Insert of " << insertOp.getDocuments()[i] << " failed.");
+ for (unsigned long i = 0; i < reply.results.size(); ++i) {
+ uassertStatusOKWithContext(reply.results[i],
+ str::stream()
+ << "Insert of " << insertOp.getDocuments()[i]
+ << " failed.");
+ }
+ // Revert to the original validation settings for opCtx
}
-
{
stdx::lock_guard<Latch> statsLock(_mutex);
_numCloned += batchNumCloned;
@@ -1427,6 +1432,8 @@ bool MigrationDestinationManager::_applyMigrateOp(OperationContext* opCtx,
bool didAnything = false;
+ DisableDocumentValidation documentValidationDisabler(opCtx);
+
// Deleted documents
if (xfer["deleted"].isABSONObj()) {
boost::optional<RemoveSaver> rs;