diff options
Diffstat (limited to 'src/mongo/s/transaction_router_test.cpp')
-rw-r--r-- | src/mongo/s/transaction_router_test.cpp | 120 |
1 files changed, 38 insertions, 82 deletions
diff --git a/src/mongo/s/transaction_router_test.cpp b/src/mongo/s/transaction_router_test.cpp index eb827201e84..a507d3e4f3f 100644 --- a/src/mongo/s/transaction_router_test.cpp +++ b/src/mongo/s/transaction_router_test.cpp @@ -316,16 +316,9 @@ TEST_F(TransactionRouterTestWithDefaultSession, CannotContiueTxnWithoutStarting) ErrorCodes::NoSuchTransaction); } -TEST_F(TransactionRouterTestWithDefaultSession, - NewParticipantMustAttachTxnAndReadConcernAndAPIParams) { +TEST_F(TransactionRouterTestWithDefaultSession, NewParticipantMustAttachTxnAndReadConcern) { TxnNumber txnNum{3}; - APIParameters apiParameters = APIParameters(); - apiParameters.setAPIVersion("1"); - apiParameters.setAPIStrict(false); - apiParameters.setAPIDeprecationErrors(false); - APIParameters::get(operationContext()) = apiParameters; - auto txnRouter = TransactionRouter::get(operationContext()); txnRouter.beginOrContinueTxn( operationContext(), txnNum, TransactionRouter::TransactionActions::kStart); @@ -337,9 +330,6 @@ TEST_F(TransactionRouterTestWithDefaultSession, << BSON("level" << "snapshot" << "atClusterTime" << kInMemoryLogicalTime.asTimestamp()) - << "apiVersion" - << "1" - << "apiStrict" << false << "apiDeprecationErrors" << false << "startTransaction" << true << "coordinator" << true << "autocommit" << false << "txnNumber" << txnNum); @@ -369,9 +359,6 @@ TEST_F(TransactionRouterTestWithDefaultSession, << BSON("level" << "snapshot" << "atClusterTime" << kInMemoryLogicalTime.asTimestamp()) - << "apiVersion" - << "1" - << "apiStrict" << false << "apiDeprecationErrors" << false << "startTransaction" << true << "autocommit" << false << "txnNumber" << txnNum); @@ -735,40 +722,6 @@ TEST_F(TransactionRouterTestWithDefaultSession, AttachTxnValidatesReadConcernIfA } } -TEST_F(TransactionRouterTestWithDefaultSession, AttachTxnAttachesAPIParameters) { - APIParameters apiParams = APIParameters(); - apiParams.setAPIVersion("2"); - apiParams.setAPIStrict(true); - apiParams.setAPIDeprecationErrors(true); - - APIParameters::get(operationContext()) = apiParams; - - TxnNumber txnNum{3}; - auto txnRouter = TransactionRouter::get(operationContext()); - txnRouter.beginOrContinueTxn( - operationContext(), txnNum, TransactionRouter::TransactionActions::kStart); - txnRouter.setDefaultAtClusterTime(operationContext()); - - { - auto newCmd = txnRouter.attachTxnFieldsIfNeeded(operationContext(), - shard1, - BSON("insert" - << "test")); - ASSERT_BSONOBJ_EQ(BSON("insert" - << "test" - << "readConcern" - << BSON("level" - << "snapshot" - << "atClusterTime" << kInMemoryLogicalTime.asTimestamp()) - << "apiVersion" - << "2" - << "apiStrict" << true << "apiDeprecationErrors" << true - << "startTransaction" << true << "coordinator" << true - << "autocommit" << false << "txnNumber" << txnNum), - newCmd); - } -} - TEST_F(TransactionRouterTestWithDefaultSession, CannotSpecifyAPIParametersAfterFirstStatement) { APIParameters apiParameters = APIParameters(); apiParameters.setAPIVersion("1"); @@ -787,40 +740,6 @@ TEST_F(TransactionRouterTestWithDefaultSession, CannotSpecifyAPIParametersAfterF 4937701); } -TEST_F(TransactionRouterTestWithDefaultSession, PassesThroughAPIParametersToParticipants) { - APIParameters apiParams = APIParameters(); - apiParams.setAPIVersion("2"); - apiParams.setAPIStrict(true); - apiParams.setAPIDeprecationErrors(true); - - APIParameters::get(operationContext()) = apiParams; - - TxnNumber txnNum{3}; - - auto txnRouter = TransactionRouter::get(operationContext()); - txnRouter.beginOrContinueTxn( - operationContext(), txnNum, TransactionRouter::TransactionActions::kStart); - txnRouter.setDefaultAtClusterTime(operationContext()); - - BSONObj expectedNewObj = BSON("insert" - << "test" - << "readConcern" - << BSON("level" - << "snapshot" - << "atClusterTime" << kInMemoryLogicalTime.asTimestamp()) - << "apiVersion" - << "2" - << "apiStrict" << true << "apiDeprecationErrors" << true - << "startTransaction" << true << "coordinator" << true - << "autocommit" << false << "txnNumber" << txnNum); - - auto newCmd = txnRouter.attachTxnFieldsIfNeeded(operationContext(), - shard1, - BSON("insert" - << "test")); - ASSERT_BSONOBJ_EQ(expectedNewObj, newCmd); -} - TEST_F(TransactionRouterTestWithDefaultSession, CannotSpecifyReadConcernAfterFirstStatement) { TxnNumber txnNum{3}; @@ -3294,6 +3213,43 @@ TEST_F(TransactionRouterMetricsTest, LogsTransactionsOverSlowMSThreshold) { assertPrintedExactlyOneSlowLogLine(); } +TEST_F(TransactionRouterMetricsTest, LogsTransactionsWithAPIParameters) { + const auto originalSlowMS = serverGlobalParams.slowMS; + const auto originalSampleRate = serverGlobalParams.sampleRate; + + serverGlobalParams.slowMS = 100; + serverGlobalParams.sampleRate = 1; + + // Reset the global parameters to their original values after this test exits. + ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { + serverGlobalParams.slowMS = originalSlowMS; + serverGlobalParams.sampleRate = originalSampleRate; + }); + + APIParameters::get(operationContext()).setAPIVersion("1"); + APIParameters::get(operationContext()).setAPIStrict(true); + APIParameters::get(operationContext()).setAPIDeprecationErrors(false); + beginTxnWithDefaultTxnNumber(); + tickSource()->advance(Milliseconds(101)); + runCommit(kDummyOkRes); + assertPrintedExactlyOneSlowLogLine(); + + int nFound = 0; + for (auto&& bson : getCapturedBSONFormatLogMessages()) { + if (bson["id"].Int() != 51805) { + continue; + } + + auto parameters = bson["attr"]["parameters"]; + ASSERT_EQUALS(parameters["apiVersion"].String(), "1"); + ASSERT_EQUALS(parameters["apiStrict"].Bool(), true); + ASSERT_EQUALS(parameters["apiDeprecationErrors"].Bool(), false); + ++nFound; + } + + ASSERT_EQUALS(nFound, 1); +} + TEST_F(TransactionRouterMetricsTest, DoesNotLogTransactionsWithSampleRateZero) { const auto originalSlowMS = serverGlobalParams.slowMS; const auto originalSampleRate = serverGlobalParams.sampleRate; |