summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2016-09-14 15:33:39 -0400
committerBenety Goh <benety@mongodb.com>2016-09-15 13:17:21 -0400
commite7b869930b2d1d520f8e6d41ede2b960fed09510 (patch)
tree9e1db2fa7e4f981d0e881ad5452b3631f74df371
parent1c592614126c2eae76508d8771c7e17c11474220 (diff)
downloadmongo-e7b869930b2d1d520f8e6d41ede2b960fed09510.tar.gz
SERVER-25268 OplogBufferCollection::startup drops existing collection
-rw-r--r--src/mongo/db/repl/oplog_buffer_collection.cpp2
-rw-r--r--src/mongo/db/repl/oplog_buffer_collection_test.cpp8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/mongo/db/repl/oplog_buffer_collection.cpp b/src/mongo/db/repl/oplog_buffer_collection.cpp
index 795d3bee524..7b59bdcd3c6 100644
--- a/src/mongo/db/repl/oplog_buffer_collection.cpp
+++ b/src/mongo/db/repl/oplog_buffer_collection.cpp
@@ -82,7 +82,7 @@ NamespaceString OplogBufferCollection::getNamespace() const {
}
void OplogBufferCollection::startup(OperationContext* txn) {
- _createCollection(txn);
+ clear(txn);
}
void OplogBufferCollection::shutdown(OperationContext* txn) {
diff --git a/src/mongo/db/repl/oplog_buffer_collection_test.cpp b/src/mongo/db/repl/oplog_buffer_collection_test.cpp
index 8a57d3bcfef..f3366f32c3c 100644
--- a/src/mongo/db/repl/oplog_buffer_collection_test.cpp
+++ b/src/mongo/db/repl/oplog_buffer_collection_test.cpp
@@ -153,6 +153,14 @@ TEST_F(OplogBufferCollectionTest, StartupWithUserProvidedNamespaceCreatesCollect
testStartupCreatesCollection(_txn.get(), _storageInterface, makeNamespace(_agent));
}
+TEST_F(OplogBufferCollectionTest, StartupDropsExistingCollectionBeforeCreatingNewCollection) {
+ auto nss = makeNamespace(_agent);
+ ASSERT_OK(_storageInterface->createCollection(_txn.get(), nss, CollectionOptions()));
+ OplogBufferCollection oplogBuffer(_storageInterface, nss);
+ oplogBuffer.startup(_txn.get());
+ ASSERT_TRUE(AutoGetCollectionForRead(_txn.get(), nss).getCollection());
+}
+
DEATH_TEST_F(OplogBufferCollectionTest,
StartupWithOplogNamespaceTriggersFatalAssertion,
"Fatal assertion 40154 Location28838: cannot create a non-capped oplog collection") {