diff options
Diffstat (limited to 'src/mongo/db/s/migration_destination_manager.cpp')
-rw-r--r-- | src/mongo/db/s/migration_destination_manager.cpp | 19 |
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; |