diff options
author | Cheahuychou Mao <mao.cheahuychou@gmail.com> | 2020-10-08 21:07:08 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-10-19 20:19:23 +0000 |
commit | ea2b9e00c0bd78c72ba601484d3b10bf2c1fd290 (patch) | |
tree | be8a08079da417f0e8bcebf947a2e557d46436f6 /src/mongo/db/logical_time_validator.cpp | |
parent | 4ad809ceae835d19990c19923d37121500d6dae6 (diff) | |
download | mongo-ea2b9e00c0bd78c72ba601484d3b10bf2c1fd290.tar.gz |
SERVER-51426 Verify that a client cannot gossip clusterTime from a donor replica set to a recipient replica set
Diffstat (limited to 'src/mongo/db/logical_time_validator.cpp')
-rw-r--r-- | src/mongo/db/logical_time_validator.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mongo/db/logical_time_validator.cpp b/src/mongo/db/logical_time_validator.cpp index 56abc27ab46..d88bbbd3294 100644 --- a/src/mongo/db/logical_time_validator.cpp +++ b/src/mongo/db/logical_time_validator.cpp @@ -50,6 +50,7 @@ namespace mongo { namespace { +MONGO_FAIL_POINT_DEFINE(alwaysValidateClientsClusterTime); MONGO_FAIL_POINT_DEFINE(throwClientDisconnectInSignLogicalTimeForExternalClients); const auto getLogicalTimeValidator = @@ -158,7 +159,8 @@ SignedLogicalTime LogicalTimeValidator::signLogicalTime(OperationContext* opCtx, Status LogicalTimeValidator::validate(OperationContext* opCtx, const SignedLogicalTime& newTime) { { stdx::lock_guard<Latch> lk(_mutex); - if (newTime.getTime() <= _lastSeenValidTime.getTime()) { + if (newTime.getTime() <= _lastSeenValidTime.getTime() && + !MONGO_unlikely(alwaysValidateClientsClusterTime.shouldFail())) { return Status::OK(); } } |