summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands
diff options
context:
space:
mode:
authorLouis Williams <louis.williams@mongodb.com>2019-01-22 17:29:55 -0500
committerLouis Williams <louis.williams@mongodb.com>2019-02-06 13:04:21 -0500
commitbb69551adf200b1b050476ad01b765018d5bac80 (patch)
tree929f508105697e1d90ae84b93bbc549c0b853975 /src/mongo/db/commands
parent33b153224e08a213f505c4f9e85d087d713cae5a (diff)
downloadmongo-bb69551adf200b1b050476ad01b765018d5bac80.tar.gz
SERVER-38986 Timestamp writes while draining
Diffstat (limited to 'src/mongo/db/commands')
-rw-r--r--src/mongo/db/commands/create_indexes.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mongo/db/commands/create_indexes.cpp b/src/mongo/db/commands/create_indexes.cpp
index f0d2d3d36d8..754e8cce6be 100644
--- a/src/mongo/db/commands/create_indexes.cpp
+++ b/src/mongo/db/commands/create_indexes.cpp
@@ -357,7 +357,9 @@ bool runCreateIndexes(OperationContext* opCtx,
opCtx->recoveryUnit()->abandonSnapshot();
Lock::CollectionLock colLock(opCtx->lockState(), ns.ns(), MODE_IS);
- uassertStatusOK(indexer.drainBackgroundWrites());
+ // Read at a point in time so that the drain, which will timestamp writes at lastApplied,
+ // can never commit writes earlier than its read timestamp.
+ uassertStatusOK(indexer.drainBackgroundWrites(RecoveryUnit::ReadSource::kNoOverlap));
}
if (MONGO_FAIL_POINT(hangAfterIndexBuildFirstDrain)) {