diff options
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.cpp | 11 |
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()) { |