summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2019-09-13 15:33:08 +0000
committerevergreen <evergreen@mongodb.com>2019-09-13 15:33:08 +0000
commitb5c38b96c50e13be68a5a6968b441a879c0a3c53 (patch)
tree137f164aa2ce81dacbaf18aeb1d832c43b284e6f
parente3c2f4e388b8278534a1bb5cfc58ae5d79b9b7e7 (diff)
downloadmongo-b5c38b96c50e13be68a5a6968b441a879c0a3c53.tar.gz
SERVER-43315 OpObserver::onAbortIndexBuild() accepts reason for aborting index as a Status
-rw-r--r--src/mongo/db/auth/auth_op_observer.h1
-rw-r--r--src/mongo/db/free_mon/free_mon_op_observer.h1
-rw-r--r--src/mongo/db/index_builds_coordinator.cpp1
-rw-r--r--src/mongo/db/op_observer.h1
-rw-r--r--src/mongo/db/op_observer_impl.cpp1
-rw-r--r--src/mongo/db/op_observer_impl.h1
-rw-r--r--src/mongo/db/op_observer_impl_test.cpp4
-rw-r--r--src/mongo/db/op_observer_noop.h1
-rw-r--r--src/mongo/db/op_observer_registry.h3
-rw-r--r--src/mongo/db/s/config_server_op_observer.h1
-rw-r--r--src/mongo/db/s/shard_server_op_observer.h1
11 files changed, 14 insertions, 2 deletions
diff --git a/src/mongo/db/auth/auth_op_observer.h b/src/mongo/db/auth/auth_op_observer.h
index 3e91a9c9884..931cb7e0747 100644
--- a/src/mongo/db/auth/auth_op_observer.h
+++ b/src/mongo/db/auth/auth_op_observer.h
@@ -70,6 +70,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) final {}
void onInserts(OperationContext* opCtx,
diff --git a/src/mongo/db/free_mon/free_mon_op_observer.h b/src/mongo/db/free_mon/free_mon_op_observer.h
index 7b17ebd014b..00c565d0dea 100644
--- a/src/mongo/db/free_mon/free_mon_op_observer.h
+++ b/src/mongo/db/free_mon/free_mon_op_observer.h
@@ -70,6 +70,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) final {}
void onInserts(OperationContext* opCtx,
diff --git a/src/mongo/db/index_builds_coordinator.cpp b/src/mongo/db/index_builds_coordinator.cpp
index 55ee47396b5..d4e6da3ba2b 100644
--- a/src/mongo/db/index_builds_coordinator.cpp
+++ b/src/mongo/db/index_builds_coordinator.cpp
@@ -876,6 +876,7 @@ void IndexBuildsCoordinator::_runIndexBuildInner(OperationContext* opCtx,
collUUID,
replState->buildUUID,
replState->indexSpecs,
+ status,
fromMigrate);
});
}
diff --git a/src/mongo/db/op_observer.h b/src/mongo/db/op_observer.h
index 85847e698ef..acb478fc68c 100644
--- a/src/mongo/db/op_observer.h
+++ b/src/mongo/db/op_observer.h
@@ -113,6 +113,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) = 0;
virtual void onInserts(OperationContext* opCtx,
diff --git a/src/mongo/db/op_observer_impl.cpp b/src/mongo/db/op_observer_impl.cpp
index 2ccfa6fa5dc..3a390afc134 100644
--- a/src/mongo/db/op_observer_impl.cpp
+++ b/src/mongo/db/op_observer_impl.cpp
@@ -311,6 +311,7 @@ void OpObserverImpl::onAbortIndexBuild(OperationContext* opCtx,
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) {
BSONObjBuilder oplogEntryBuilder;
oplogEntryBuilder.append("abortIndexBuild", nss.coll());
diff --git a/src/mongo/db/op_observer_impl.h b/src/mongo/db/op_observer_impl.h
index bebd01101fc..1a512eb7f3a 100644
--- a/src/mongo/db/op_observer_impl.h
+++ b/src/mongo/db/op_observer_impl.h
@@ -66,6 +66,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) final;
void onInserts(OperationContext* opCtx,
diff --git a/src/mongo/db/op_observer_impl_test.cpp b/src/mongo/db/op_observer_impl_test.cpp
index 6569b33bf1e..c000abe4d52 100644
--- a/src/mongo/db/op_observer_impl_test.cpp
+++ b/src/mongo/db/op_observer_impl_test.cpp
@@ -207,11 +207,13 @@ TEST_F(OpObserverTest, AbortIndexBuildExpectedOplogEntry) {
std::vector<BSONObj> specs = {specX, specA};
// Write to the oplog.
+ Status cause(ErrorCodes::OperationFailed, "index build failed");
{
AutoGetDb autoDb(opCtx.get(), nss.db(), MODE_X);
WriteUnitOfWork wunit(opCtx.get());
+ auto fromMigrate = false;
opObserver.onAbortIndexBuild(
- opCtx.get(), nss, uuid, indexBuildUUID, specs, false /*fromMigrate*/);
+ opCtx.get(), nss, uuid, indexBuildUUID, specs, cause, fromMigrate);
wunit.commit();
}
diff --git a/src/mongo/db/op_observer_noop.h b/src/mongo/db/op_observer_noop.h
index 6c72a04aa25..b45fe089338 100644
--- a/src/mongo/db/op_observer_noop.h
+++ b/src/mongo/db/op_observer_noop.h
@@ -60,6 +60,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) override {}
void onInserts(OperationContext* opCtx,
diff --git a/src/mongo/db/op_observer_registry.h b/src/mongo/db/op_observer_registry.h
index a930b9aa608..12370e0b561 100644
--- a/src/mongo/db/op_observer_registry.h
+++ b/src/mongo/db/op_observer_registry.h
@@ -97,10 +97,11 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) override {
ReservedTimes times{opCtx};
for (auto& o : _observers) {
- o->onAbortIndexBuild(opCtx, nss, collUUID, indexBuildUUID, indexes, fromMigrate);
+ o->onAbortIndexBuild(opCtx, nss, collUUID, indexBuildUUID, indexes, cause, fromMigrate);
}
}
diff --git a/src/mongo/db/s/config_server_op_observer.h b/src/mongo/db/s/config_server_op_observer.h
index bf804fbf6c4..89c420b356c 100644
--- a/src/mongo/db/s/config_server_op_observer.h
+++ b/src/mongo/db/s/config_server_op_observer.h
@@ -70,6 +70,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) override {}
void onInserts(OperationContext* opCtx,
diff --git a/src/mongo/db/s/shard_server_op_observer.h b/src/mongo/db/s/shard_server_op_observer.h
index 339f5968bf8..08822c4e33a 100644
--- a/src/mongo/db/s/shard_server_op_observer.h
+++ b/src/mongo/db/s/shard_server_op_observer.h
@@ -71,6 +71,7 @@ public:
CollectionUUID collUUID,
const UUID& indexBuildUUID,
const std::vector<BSONObj>& indexes,
+ const Status& cause,
bool fromMigrate) override {}
void onInserts(OperationContext* opCtx,