summaryrefslogtreecommitdiff
path: root/src/mongo/s
diff options
context:
space:
mode:
authorADAM David Alan Martin <adam.martin@10gen.com>2018-10-05 17:59:07 -0400
committerADAM David Alan Martin <adam.martin@10gen.com>2018-10-05 17:59:07 -0400
commita55b0131e76846491a23da09f812acede0f7cf46 (patch)
tree58521e21d8b3d472e997d2f23e8e8e628fb674a2 /src/mongo/s
parent2e313aa04c07080e0734e694f43f99f4bc8ddb94 (diff)
downloadmongo-a55b0131e76846491a23da09f812acede0f7cf46.tar.gz
SERVER-37431 Make `logChange` not return `Status`.
This eliminates the need for a lot of superfluous `.ignore()` calls. It also cleans up a lot of `.transitional_ignore()` calls.
Diffstat (limited to 'src/mongo/s')
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client.h20
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client_impl.cpp10
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client_impl.h10
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client_mock.cpp10
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client_mock.h10
-rw-r--r--src/mongo/s/catalog/sharding_catalog_log_change_test.cpp2
6 files changed, 36 insertions, 26 deletions
diff --git a/src/mongo/s/catalog/sharding_catalog_client.h b/src/mongo/s/catalog/sharding_catalog_client.h
index ef0337dbf1a..fbcb9f71ec6 100644
--- a/src/mongo/s/catalog/sharding_catalog_client.h
+++ b/src/mongo/s/catalog/sharding_catalog_client.h
@@ -277,11 +277,21 @@ public:
/**
* Writes a diagnostic event to the change log.
*/
- virtual Status logChange(OperationContext* opCtx,
- const std::string& what,
- const std::string& ns,
- const BSONObj& detail,
- const WriteConcernOptions& writeConcern) = 0;
+ virtual Status logChangeChecked(OperationContext* opCtx,
+ const std::string& what,
+ const std::string& ns,
+ const BSONObj& detail,
+ const WriteConcernOptions& writeConcern) = 0;
+
+ void logChange(OperationContext* const opCtx,
+ const std::string& what,
+ const std::string& ns,
+ const BSONObj& detail,
+ const WriteConcernOptions& writeConcern) {
+ // It is safe to ignore the results of `logChangeChecked` in many cases, as the
+ // failure to log a change is often of no consequence.
+ logChangeChecked(opCtx, what, ns, detail, writeConcern).ignore();
+ }
/**
* Reads global sharding settings from the confing.settings collection. The key parameter is
diff --git a/src/mongo/s/catalog/sharding_catalog_client_impl.cpp b/src/mongo/s/catalog/sharding_catalog_client_impl.cpp
index 69944160e0b..1adfe48b9fc 100644
--- a/src/mongo/s/catalog/sharding_catalog_client_impl.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_client_impl.cpp
@@ -176,11 +176,11 @@ Status ShardingCatalogClientImpl::logAction(OperationContext* opCtx,
ShardingCatalogClient::kMajorityWriteConcern);
}
-Status ShardingCatalogClientImpl::logChange(OperationContext* opCtx,
- const std::string& what,
- const std::string& ns,
- const BSONObj& detail,
- const WriteConcernOptions& writeConcern) {
+Status ShardingCatalogClientImpl::logChangeChecked(OperationContext* opCtx,
+ const std::string& what,
+ const std::string& ns,
+ const BSONObj& detail,
+ const WriteConcernOptions& writeConcern) {
invariant(serverGlobalParams.clusterRole == ClusterRole::ConfigServer ||
writeConcern.wMode == WriteConcernOptions::kMajority);
if (_changeLogCollectionCreated.load() == 0) {
diff --git a/src/mongo/s/catalog/sharding_catalog_client_impl.h b/src/mongo/s/catalog/sharding_catalog_client_impl.h
index 6ef87d060ff..337e1f932ce 100644
--- a/src/mongo/s/catalog/sharding_catalog_client_impl.h
+++ b/src/mongo/s/catalog/sharding_catalog_client_impl.h
@@ -76,11 +76,11 @@ public:
const std::string& ns,
const BSONObj& detail) override;
- Status logChange(OperationContext* opCtx,
- const std::string& what,
- const std::string& ns,
- const BSONObj& detail,
- const WriteConcernOptions& writeConcern) override;
+ Status logChangeChecked(OperationContext* opCtx,
+ const std::string& what,
+ const std::string& ns,
+ const BSONObj& detail,
+ const WriteConcernOptions& writeConcern) override;
StatusWith<repl::OpTimeWith<DatabaseType>> getDatabase(
OperationContext* opCtx,
diff --git a/src/mongo/s/catalog/sharding_catalog_client_mock.cpp b/src/mongo/s/catalog/sharding_catalog_client_mock.cpp
index b1a1633f4b0..6bf5edbb7a3 100644
--- a/src/mongo/s/catalog/sharding_catalog_client_mock.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_client_mock.cpp
@@ -148,11 +148,11 @@ Status ShardingCatalogClientMock::logAction(OperationContext* opCtx,
return {ErrorCodes::InternalError, "Method not implemented"};
}
-Status ShardingCatalogClientMock::logChange(OperationContext* opCtx,
- const std::string& what,
- const std::string& ns,
- const BSONObj& detail,
- const WriteConcernOptions& writeConcern) {
+Status ShardingCatalogClientMock::logChangeChecked(OperationContext* opCtx,
+ const std::string& what,
+ const std::string& ns,
+ const BSONObj& detail,
+ const WriteConcernOptions& writeConcern) {
return {ErrorCodes::InternalError, "Method not implemented"};
}
diff --git a/src/mongo/s/catalog/sharding_catalog_client_mock.h b/src/mongo/s/catalog/sharding_catalog_client_mock.h
index d98c644792d..3662f36a796 100644
--- a/src/mongo/s/catalog/sharding_catalog_client_mock.h
+++ b/src/mongo/s/catalog/sharding_catalog_client_mock.h
@@ -106,11 +106,11 @@ public:
const std::string& ns,
const BSONObj& detail) override;
- Status logChange(OperationContext* opCtx,
- const std::string& what,
- const std::string& ns,
- const BSONObj& detail,
- const WriteConcernOptions& writeConcern) override;
+ Status logChangeChecked(OperationContext* opCtx,
+ const std::string& what,
+ const std::string& ns,
+ const BSONObj& detail,
+ const WriteConcernOptions& writeConcern) override;
StatusWith<BSONObj> getGlobalSettings(OperationContext* opCtx, StringData key) override;
diff --git a/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp b/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp
index 9653888feb9..48764cc53ec 100644
--- a/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_log_change_test.cpp
@@ -178,7 +178,7 @@ protected:
Status log(const std::string& what, const std::string& ns, const BSONObj& detail) {
if (_configCollType == ChangeLog) {
- return catalogClient()->logChange(
+ return catalogClient()->logChangeChecked(
operationContext(), what, ns, detail, ShardingCatalogClient::kMajorityWriteConcern);
} else {
return catalogClient()->logAction(operationContext(), what, ns, detail);