diff options
author | William Schultz <william.schultz@mongodb.com> | 2017-06-05 14:28:12 -0400 |
---|---|---|
committer | Eric Milkie <milkie@10gen.com> | 2017-06-14 09:23:53 -0400 |
commit | 06d23a1215d33f3e2262a5a17d458e94ba563576 (patch) | |
tree | 336596a414f8430facf873a8b980ff2dd399a2a6 /src | |
parent | 34d292df70c97fadbac07296dea3cb04b6021a4d (diff) | |
download | mongo-06d23a1215d33f3e2262a5a17d458e94ba563576.tar.gz |
SERVER-29240 Add test to ensure valid index creation for capped collections during
initial sync
(cherry picked from commit 2daa02b7294412f2d5f2b7f224ef94f290f12f12)
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/repl/collection_cloner.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mongo/db/repl/collection_cloner.cpp b/src/mongo/db/repl/collection_cloner.cpp index a274ab98f24..9dc3674efa0 100644 --- a/src/mongo/db/repl/collection_cloner.cpp +++ b/src/mongo/db/repl/collection_cloner.cpp @@ -73,6 +73,10 @@ MONGO_EXPORT_SERVER_PARAMETER(numInitialSyncListIndexesAttempts, int, 3); MONGO_EXPORT_SERVER_PARAMETER(numInitialSyncCollectionFindAttempts, int, 3); } // namespace +// Failpoint which causes initial sync to hang after the initial 'find' command of collection +// cloning, for a specific collection. +MONGO_FP_DECLARE(initialSyncHangCollectionClonerAfterInitialFind); + CollectionCloner::CollectionCloner(executor::TaskExecutor* executor, OldThreadPool* dbWorkThreadPool, const HostAndPort& source, @@ -443,6 +447,20 @@ void CollectionCloner::_findCallback(const StatusWith<Fetcher::QueryResponse>& f return; } + MONGO_FAIL_POINT_BLOCK(initialSyncHangCollectionClonerAfterInitialFind, nssData) { + const BSONObj& data = nssData.getData(); + auto nss = data["nss"].str(); + // Only hang when cloning the specified collection. + if (_destNss.toString() == nss) { + while (MONGO_FAIL_POINT(initialSyncHangCollectionClonerAfterInitialFind) && + !_isShuttingDown()) { + log() << "initialSyncHangCollectionClonerAfterInitialFind fail point enabled for " + << nss << ". Blocking until fail point is disabled."; + mongo::sleepsecs(1); + } + } + } + if (!lastBatch) { invariant(getMoreBob); getMoreBob->append("getMore", batchData.cursorId); |