diff options
author | Pierlauro Sciarelli <pierlauro.sciarelli@mongodb.com> | 2023-02-09 11:50:46 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-02-09 17:32:40 +0000 |
commit | a691dacf5bca2d78714d4abebe18078e1473b485 (patch) | |
tree | 94f9808051037d6b364c476db696386da2ae62e5 /src/mongo/db/s | |
parent | 6dad29fa64f0bab3468b18ec784f53027306c8d7 (diff) | |
download | mongo-a691dacf5bca2d78714d4abebe18078e1473b485.tar.gz |
SERVER-71792 Log list of cursors a range deletion is going to wait on
Diffstat (limited to 'src/mongo/db/s')
-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) { |