summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp')
-rw-r--r--src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp b/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
index 3a22934b09d..4ddf2bb1260 100644
--- a/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
+++ b/src/mongo/db/repl/tenant_migration_recipient_access_blocker.cpp
@@ -36,6 +36,7 @@
#include "mongo/db/repl/replication_coordinator.h"
#include "mongo/db/repl/storage_interface.h"
#include "mongo/db/repl/tenant_migration_access_blocker_executor.h"
+#include "mongo/db/repl/tenant_migration_decoration.h"
#include "mongo/db/repl/tenant_migration_recipient_access_blocker.h"
#include "mongo/logv2/log.h"
#include "mongo/util/cancelation.h"
@@ -82,6 +83,16 @@ SharedSemiFuture<void> TenantMigrationRecipientAccessBlocker::getCanReadFuture(
return SharedSemiFuture<void>();
}
+ // Exclude internal reads decorated with 'tenantMigrationRecipientInfo' from any logic.
+ if (repl::tenantMigrationRecipientInfo(opCtx).has_value()) {
+ LOGV2_DEBUG(5492000,
+ 1,
+ "Internal tenant read got excluded from the MTAB filtering",
+ "tenantId"_attr = _tenantId,
+ "opId"_attr = opCtx->getOpID());
+ return SharedSemiFuture<void>();
+ }
+
auto readConcernArgs = repl::ReadConcernArgs::get(opCtx);
auto atClusterTime = [opCtx, &readConcernArgs]() -> boost::optional<Timestamp> {
if (auto atClusterTime = readConcernArgs.getArgsAtClusterTime()) {