diff options
Diffstat (limited to 'src/mongo/db/s/range_deleter_service_op_observer.cpp')
-rw-r--r-- | src/mongo/db/s/range_deleter_service_op_observer.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/db/s/range_deleter_service_op_observer.cpp b/src/mongo/db/s/range_deleter_service_op_observer.cpp index 7c0d0084963..93de39a2377 100644 --- a/src/mongo/db/s/range_deleter_service_op_observer.cpp +++ b/src/mongo/db/s/range_deleter_service_op_observer.cpp @@ -30,6 +30,7 @@ #include "mongo/db/s/range_deleter_service_op_observer.h" #include "mongo/db/catalog_raii.h" +#include "mongo/db/cursor_manager.h" #include "mongo/db/persistent_task_store.h" #include "mongo/db/s/collection_sharding_runtime.h" #include "mongo/db/s/range_deleter_service.h" @@ -54,6 +55,16 @@ void registerTaskWithOngoingQueriesOnOpLogEntryCommit(OperationContext* opCtx, rdt.getNss()) ->getOngoingQueriesCompletionFuture(rdt.getCollectionUuid(), rdt.getRange()) .semi(); + if (!waitForActiveQueriesToComplete.isReady()) { + const auto openCursorsIds = + CursorManager::get(opCtx)->getCursorIdsForNamespace(rdt.getNss()); + LOGV2_INFO( + 7179200, + "Range deletion will be scheduled after all possibly dependent queries finish", + "namespace"_attr = rdt.getNss(), + "range"_attr = rdt.getRange(), + "cursorsDirectlyReferringTheNamespace"_attr = openCursorsIds); + } (void)RangeDeleterService::get(opCtx)->registerTask( rdt, std::move(waitForActiveQueriesToComplete)); } catch (const DBException& ex) { |