diff options
author | Benety Goh <benety@mongodb.com> | 2016-09-14 15:33:39 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2016-09-15 13:17:21 -0400 |
commit | e7b869930b2d1d520f8e6d41ede2b960fed09510 (patch) | |
tree | 9e1db2fa7e4f981d0e881ad5452b3631f74df371 | |
parent | 1c592614126c2eae76508d8771c7e17c11474220 (diff) | |
download | mongo-e7b869930b2d1d520f8e6d41ede2b960fed09510.tar.gz |
SERVER-25268 OplogBufferCollection::startup drops existing collection
-rw-r--r-- | src/mongo/db/repl/oplog_buffer_collection.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/repl/oplog_buffer_collection_test.cpp | 8 |
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") { |