summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMisha Tyulenev <misha@mongodb.com>2018-10-03 13:28:33 -0400
committerMisha Tyulenev <misha@mongodb.com>2018-10-03 13:28:33 -0400
commit54cf97e5366ad421ed775d6fd74d2aa4fddaed02 (patch)
treedd40cea86447f8538f4064398b88ec257f16cf93
parent1f5551f610f7f7ab75fcfe8479670bbf9ba04892 (diff)
downloadmongo-54cf97e5366ad421ed775d6fd74d2aa4fddaed02.tar.gz
SERVER-29160 bump timeout for migration operations
-rw-r--r--src/mongo/db/commands.cpp2
-rw-r--r--src/mongo/db/s/balancer/migration_manager.cpp2
-rw-r--r--src/mongo/db/s/balancer/scoped_migration_request.cpp2
-rw-r--r--src/mongo/db/s/collection_range_deleter.cpp2
-rw-r--r--src/mongo/db/s/config/configsvr_move_primary_command.cpp2
-rw-r--r--src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp2
-rw-r--r--src/mongo/db/s/migration_source_manager.cpp2
-rw-r--r--src/mongo/db/s/sharding_state_recovery.cpp2
-rw-r--r--src/mongo/db/sessions_collection.cpp9
-rw-r--r--src/mongo/db/write_concern_options.cpp5
-rw-r--r--src/mongo/db/write_concern_options.h5
-rw-r--r--src/mongo/s/catalog/dist_lock_catalog.cpp2
-rw-r--r--src/mongo/s/catalog/sharding_catalog_client.cpp3
-rw-r--r--src/mongo/s/catalog/sharding_catalog_test.cpp2
-rw-r--r--src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_user_management_commands.cpp2
-rw-r--r--src/mongo/s/request_types/add_shard_request_type.cpp2
-rw-r--r--src/mongo/s/sharding_router_test_fixture.cpp2
20 files changed, 33 insertions, 21 deletions
diff --git a/src/mongo/db/commands.cpp b/src/mongo/db/commands.cpp
index 87f02341918..8fc8e3c69a5 100644
--- a/src/mongo/db/commands.cpp
+++ b/src/mongo/db/commands.cpp
@@ -68,7 +68,7 @@ const WriteConcernOptions kMajorityWriteConcern(
// Note: Even though we're setting UNSET here, kMajority implies JOURNAL if journaling is
// supported by the mongod.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(60));
+ WriteConcernOptions::kWriteConcernTimeoutUserCommand);
// Returns true if found to be authorized, false if undecided. Throws if unauthorized.
bool checkAuthorizationImplPreParse(OperationContext* opCtx,
diff --git a/src/mongo/db/s/balancer/migration_manager.cpp b/src/mongo/db/s/balancer/migration_manager.cpp
index 267b7682f35..d46560ca84b 100644
--- a/src/mongo/db/s/balancer/migration_manager.cpp
+++ b/src/mongo/db/s/balancer/migration_manager.cpp
@@ -66,7 +66,7 @@ const char kChunkTooBig[] = "chunkTooBig"; // TODO: delete in 3.8
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutMigration);
/**
* Parses the 'commandResponse' and converts it to a status to use as the outcome of the command.
diff --git a/src/mongo/db/s/balancer/scoped_migration_request.cpp b/src/mongo/db/s/balancer/scoped_migration_request.cpp
index 74511ab1823..46aeadf7e40 100644
--- a/src/mongo/db/s/balancer/scoped_migration_request.cpp
+++ b/src/mongo/db/s/balancer/scoped_migration_request.cpp
@@ -43,7 +43,7 @@ namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutMigration);
const int kDuplicateKeyErrorMaxRetries = 2;
} // namespace
diff --git a/src/mongo/db/s/collection_range_deleter.cpp b/src/mongo/db/s/collection_range_deleter.cpp
index 2bf06914bd5..9b1f2456ded 100644
--- a/src/mongo/db/s/collection_range_deleter.cpp
+++ b/src/mongo/db/s/collection_range_deleter.cpp
@@ -75,7 +75,7 @@ using DeleteNotification = CollectionRangeDeleter::DeleteNotification;
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(60));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
boost::optional<DeleteNotification> checkOverlap(std::list<Deletion> const& deletions,
ChunkRange const& range) {
diff --git a/src/mongo/db/s/config/configsvr_move_primary_command.cpp b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
index 5dbab2f5023..9ffd937f786 100644
--- a/src/mongo/db/s/config/configsvr_move_primary_command.cpp
+++ b/src/mongo/db/s/config/configsvr_move_primary_command.cpp
@@ -58,7 +58,7 @@ namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(60));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* Internal sharding command run on config servers to change a database's primary shard.
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp b/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp
index 565729e8458..a7c6f0f49f4 100644
--- a/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp
+++ b/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp
@@ -357,7 +357,7 @@ TEST_F(AddShardTest, CreateShardIdentityUpsertForAddShard) {
<< BSON("w"
<< "majority"
<< "wtimeout"
- << 15000)
+ << 60000)
<< "allowImplicitCollectionCreation"
<< true);
ASSERT_BSONOBJ_EQ(expectedBSON,
diff --git a/src/mongo/db/s/migration_source_manager.cpp b/src/mongo/db/s/migration_source_manager.cpp
index a07f6f0f8e1..f921ff239f6 100644
--- a/src/mongo/db/s/migration_source_manager.cpp
+++ b/src/mongo/db/s/migration_source_manager.cpp
@@ -77,7 +77,7 @@ const char kControlChunkVersionField[] = "controlChunkVersion";
const char kWriteConcernField[] = "writeConcern";
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutMigration);
/**
* Best-effort attempt to ensure the recipient shard has refreshed its routing table to
diff --git a/src/mongo/db/s/sharding_state_recovery.cpp b/src/mongo/db/s/sharding_state_recovery.cpp
index 8b6e9d99f22..0eecfbfe135 100644
--- a/src/mongo/db/s/sharding_state_recovery.cpp
+++ b/src/mongo/db/s/sharding_state_recovery.cpp
@@ -65,7 +65,7 @@ const char kShardName[] = "shardName"; // TODO SERVER
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
const WriteConcernOptions kLocalWriteConcern(1,
WriteConcernOptions::SyncMode::UNSET,
diff --git a/src/mongo/db/sessions_collection.cpp b/src/mongo/db/sessions_collection.cpp
index 7c40f6117a9..c440efdd4c8 100644
--- a/src/mongo/db/sessions_collection.cpp
+++ b/src/mongo/db/sessions_collection.cpp
@@ -58,10 +58,11 @@ constexpr size_t kMaxBatchSize = 1000;
// Used to refresh or remove items from the session collection with write
// concern majority
-const BSONObj kMajorityWriteConcern = WriteConcernOptions(WriteConcernOptions::kMajority,
- WriteConcernOptions::SyncMode::UNSET,
- Seconds(15))
- .toBSON();
+const BSONObj kMajorityWriteConcern =
+ WriteConcernOptions(WriteConcernOptions::kMajority,
+ WriteConcernOptions::SyncMode::UNSET,
+ WriteConcernOptions::kWriteConcernTimeoutSystem)
+ .toBSON();
BSONObj lsidQuery(const LogicalSessionId& lsid) {
diff --git a/src/mongo/db/write_concern_options.cpp b/src/mongo/db/write_concern_options.cpp
index 26f5778be37..64a788b2520 100644
--- a/src/mongo/db/write_concern_options.cpp
+++ b/src/mongo/db/write_concern_options.cpp
@@ -69,6 +69,11 @@ const BSONObj WriteConcernOptions::Default = BSONObj();
const BSONObj WriteConcernOptions::Acknowledged(BSON("w" << W_NORMAL));
const BSONObj WriteConcernOptions::Unacknowledged(BSON("w" << W_NONE));
const BSONObj WriteConcernOptions::Majority(BSON("w" << WriteConcernOptions::kMajority));
+const Seconds WriteConcernOptions::kWriteConcernTimeoutSystem{15};
+const Seconds WriteConcernOptions::kWriteConcernTimeoutMigration{60};
+const Seconds WriteConcernOptions::kWriteConcernTimeoutSharding{60};
+const Seconds WriteConcernOptions::kWriteConcernTimeoutUserCommand{60};
+
WriteConcernOptions::WriteConcernOptions(int numNodes, SyncMode sync, int timeout)
: WriteConcernOptions(numNodes, sync, Milliseconds(timeout)) {}
diff --git a/src/mongo/db/write_concern_options.h b/src/mongo/db/write_concern_options.h
index a809a2a1de5..3938a39f99b 100644
--- a/src/mongo/db/write_concern_options.h
+++ b/src/mongo/db/write_concern_options.h
@@ -50,6 +50,11 @@ public:
static const StringData kWriteConcernField;
static const char kMajority[]; // = "majority"
+ static const Seconds kWriteConcernTimeoutSystem;
+ static const Seconds kWriteConcernTimeoutMigration;
+ static const Seconds kWriteConcernTimeoutSharding;
+ static const Seconds kWriteConcernTimeoutUserCommand;
+
WriteConcernOptions() {
reset();
}
diff --git a/src/mongo/s/catalog/dist_lock_catalog.cpp b/src/mongo/s/catalog/dist_lock_catalog.cpp
index edd7bccc245..17267287c36 100644
--- a/src/mongo/s/catalog/dist_lock_catalog.cpp
+++ b/src/mongo/s/catalog/dist_lock_catalog.cpp
@@ -41,7 +41,7 @@ const WriteConcernOptions DistLockCatalog::kMajorityWriteConcern(
// Note: Even though we're setting UNSET here, kMajority implies JOURNAL if journaling is
// supported by this mongod.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSystem);
DistLockCatalog::DistLockCatalog() = default;
diff --git a/src/mongo/s/catalog/sharding_catalog_client.cpp b/src/mongo/s/catalog/sharding_catalog_client.cpp
index ed17aa3b743..eeda90c9d03 100644
--- a/src/mongo/s/catalog/sharding_catalog_client.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_client.cpp
@@ -28,6 +28,7 @@
#include "mongo/platform/basic.h"
+#include "mongo/db/write_concern_options.h"
#include "mongo/s/catalog/sharding_catalog_client.h"
namespace mongo {
@@ -38,7 +39,7 @@ const WriteConcernOptions ShardingCatalogClient::kMajorityWriteConcern(
// supported by mongod and writeConcernMajorityJournalDefault is set to true in the
// ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
const WriteConcernOptions ShardingCatalogClient::kLocalWriteConcern(
1, WriteConcernOptions::SyncMode::UNSET, Seconds(0));
diff --git a/src/mongo/s/catalog/sharding_catalog_test.cpp b/src/mongo/s/catalog/sharding_catalog_test.cpp
index ce2c79877fe..1005e9ef1a8 100644
--- a/src/mongo/s/catalog/sharding_catalog_test.cpp
+++ b/src/mongo/s/catalog/sharding_catalog_test.cpp
@@ -1187,7 +1187,7 @@ TEST_F(ShardingCatalogClientTest, ApplyChunkOpsDeprecatedSuccessful) {
ASSERT_BSONOBJ_EQ(BSON("w"
<< "majority"
<< "wtimeout"
- << 15000),
+ << 60000),
request.cmdObj["writeConcern"].Obj());
ASSERT_BSONOBJ_EQ(BSON(rpc::kReplSetMetadataFieldName << 1),
rpc::TrackingMetadata::removeTrackingData(request.metadata));
diff --git a/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp b/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
index 8bd17b2f011..e2eaa98f111 100644
--- a/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
+++ b/src/mongo/s/commands/cluster_add_shard_to_zone_cmd.cpp
@@ -50,7 +50,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// writeConcernMajorityJournalDefault is set to true
// in the ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* {
diff --git a/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp b/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
index 5c18b49aaf2..f6b62f41d7a 100644
--- a/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
+++ b/src/mongo/s/commands/cluster_remove_shard_from_zone_cmd.cpp
@@ -57,7 +57,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// writeConcernMajorityJournalDefault is set to true
// in the ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* {
diff --git a/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp b/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
index a54f01bf99e..88f5a1b8f4a 100644
--- a/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
+++ b/src/mongo/s/commands/cluster_update_zone_key_range_cmd.cpp
@@ -58,7 +58,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// writeConcernMajorityJournalDefault is set to true
// in the ReplSetConfig.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
/**
* {
diff --git a/src/mongo/s/commands/cluster_user_management_commands.cpp b/src/mongo/s/commands/cluster_user_management_commands.cpp
index f899393c2f5..8174cd017ad 100644
--- a/src/mongo/s/commands/cluster_user_management_commands.cpp
+++ b/src/mongo/s/commands/cluster_user_management_commands.cpp
@@ -59,7 +59,7 @@ const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
// kMajority implies JOURNAL if journaling is
// supported by this mongod.
WriteConcernOptions::SyncMode::UNSET,
- Seconds(30));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
class CmdCreateUser : public BasicCommand {
public:
diff --git a/src/mongo/s/request_types/add_shard_request_type.cpp b/src/mongo/s/request_types/add_shard_request_type.cpp
index bb3806ff416..fc19d12ff53 100644
--- a/src/mongo/s/request_types/add_shard_request_type.cpp
+++ b/src/mongo/s/request_types/add_shard_request_type.cpp
@@ -52,7 +52,7 @@ const BSONField<long long> AddShardRequest::maxSizeMB("maxSize");
namespace {
const WriteConcernOptions kMajorityWriteConcern(WriteConcernOptions::kMajority,
WriteConcernOptions::SyncMode::UNSET,
- Seconds(15));
+ WriteConcernOptions::kWriteConcernTimeoutSharding);
}
AddShardRequest::AddShardRequest(ConnectionString connString)
diff --git a/src/mongo/s/sharding_router_test_fixture.cpp b/src/mongo/s/sharding_router_test_fixture.cpp
index d6b94f4c6df..f6f48097db3 100644
--- a/src/mongo/s/sharding_router_test_fixture.cpp
+++ b/src/mongo/s/sharding_router_test_fixture.cpp
@@ -354,7 +354,7 @@ void ShardingTestFixture::expectConfigCollectionCreate(const HostAndPort& config
<< BSON("w"
<< "majority"
<< "wtimeout"
- << 15000)
+ << 60000)
<< "maxTimeMS"
<< 30000);
ASSERT_BSONOBJ_EQ(expectedCreateCmd, request.cmdObj);