summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/range_deleter_service_op_observer.cpp
diff options
context:
space:
mode:
authorPierlauro Sciarelli <pierlauro.sciarelli@mongodb.com>2023-02-09 11:50:46 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-02-09 17:32:40 +0000
commita691dacf5bca2d78714d4abebe18078e1473b485 (patch)
tree94f9808051037d6b364c476db696386da2ae62e5 /src/mongo/db/s/range_deleter_service_op_observer.cpp
parent6dad29fa64f0bab3468b18ec784f53027306c8d7 (diff)
downloadmongo-a691dacf5bca2d78714d4abebe18078e1473b485.tar.gz
SERVER-71792 Log list of cursors a range deletion is going to wait on
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.cpp11
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) {