From e7b869930b2d1d520f8e6d41ede2b960fed09510 Mon Sep 17 00:00:00 2001 From: Benety Goh Date: Wed, 14 Sep 2016 15:33:39 -0400 Subject: SERVER-25268 OplogBufferCollection::startup drops existing collection --- src/mongo/db/repl/oplog_buffer_collection.cpp | 2 +- src/mongo/db/repl/oplog_buffer_collection_test.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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") { -- cgit v1.2.1