diff options
author | Randolph Tan <randolph@10gen.com> | 2017-09-28 10:45:49 -0400 |
---|---|---|
committer | Randolph Tan <randolph@10gen.com> | 2017-09-28 10:45:49 -0400 |
commit | f24fbb0011c6ded9101f08574e7cd07e63690a9b (patch) | |
tree | e1452828e142748f1f03be61a00c32dbb3ed6bc1 /src/mongo/db/ops/write_ops_retryability_test.cpp | |
parent | d293f6857bcb36b26ca8fa03d90299714fe060de (diff) | |
download | mongo-f24fbb0011c6ded9101f08574e7cd07e63690a9b.tar.gz |
Revert "Revert "Revert "SERVER-30894 Implement command for transferring session information during migration"""
This reverts commit aaa0c96532ba6a8ea9146e4298c6bf1cc6b27f9e.
Diffstat (limited to 'src/mongo/db/ops/write_ops_retryability_test.cpp')
-rw-r--r-- | src/mongo/db/ops/write_ops_retryability_test.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mongo/db/ops/write_ops_retryability_test.cpp b/src/mongo/db/ops/write_ops_retryability_test.cpp index a50c51eba58..f3415ae2427 100644 --- a/src/mongo/db/ops/write_ops_retryability_test.cpp +++ b/src/mongo/db/ops/write_ops_retryability_test.cpp @@ -273,6 +273,23 @@ TEST_F(FindAndModifyRetryability, NestedUpsert) { ASSERT_BSONOBJ_EQ(BSON("x" << 1), result.getValue()); } +TEST_F(FindAndModifyRetryability, ErrorIfRequestIsUpsertButOplogIsUpdate) { + auto request = FindAndModifyRequest::makeUpdate(kNs, BSONObj(), BSONObj()); + request.setUpsert(true); + + Timestamp imageTs(120, 3); + repl::OplogEntry noteOplog( + repl::OpTime(imageTs, 1), 0, repl::OpTypeEnum::kNoop, kNs, BSON("x" << 1 << "z" << 1)); + + insertOplogEntry(noteOplog); + + repl::OplogEntry oplog( + repl::OpTime(), 0, repl::OpTypeEnum::kUpdate, kNs, BSON("x" << 1), BSON("y" << 1)); + oplog.setPreImageTs(imageTs); + + ASSERT_THROWS(parseOplogEntryForFindAndModify(opCtx(), request, oplog), AssertionException); +} + TEST_F(FindAndModifyRetryability, AttemptingToRetryUpsertWithUpdateWithoutUpsertErrors) { auto request = FindAndModifyRequest::makeUpdate(kNs, BSONObj(), BSONObj()); request.setUpsert(false); |