summaryrefslogtreecommitdiffstats
path: root/storage/src/tests/distributor/twophaseupdateoperationtest.cpp
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@verizonmedia.com>2019-12-20 11:25:46 +0000
committerTor Brede Vekterli <vekterli@verizonmedia.com>2019-12-20 12:03:26 +0000
commite577768f8d9c0c815396fba6a0a7a11f3e24e580 (patch)
treed90136e6da44061714e46b2a2857d0d722a129a1 /storage/src/tests/distributor/twophaseupdateoperationtest.cpp
parentd1ef9ba58add96123213fd8fe65a6dcc6ffdb5a6 (diff)
Disable fast update path restarts by default
Even with the fix in #11561 we are still observing replica divergence warnings in the logs. Disabling this feature entirely until the issue has been fully investigated and a complete fix has been implemented. Also emit a log message when the distributor has forced convergence of a detected inconsistent update.
Diffstat (limited to 'storage/src/tests/distributor/twophaseupdateoperationtest.cpp')
-rw-r--r--storage/src/tests/distributor/twophaseupdateoperationtest.cpp44
1 files changed, 22 insertions, 22 deletions
diff --git a/storage/src/tests/distributor/twophaseupdateoperationtest.cpp b/storage/src/tests/distributor/twophaseupdateoperationtest.cpp
index 619c3151295..8f728c39bb8 100644
--- a/storage/src/tests/distributor/twophaseupdateoperationtest.cpp
+++ b/storage/src/tests/distributor/twophaseupdateoperationtest.cpp
@@ -1048,28 +1048,28 @@ TEST_F(TwoPhaseUpdateOperationTest, safe_path_consistent_get_reply_timestamps_do
}
TEST_F(TwoPhaseUpdateOperationTest, fast_path_not_restarted_if_replica_set_altered_between_get_send_and_receive) {
- setupDistributor(3, 3, "storage:3 distributor:1");
- getConfig().set_update_fast_path_restart_enabled(true);
-
- std::shared_ptr<TwoPhaseUpdateOperation> cb(sendUpdate("0=1/2/3,1=2/3/4")); // Inconsistent replicas.
- DistributorMessageSenderStub sender;
- cb->start(sender, framework::MilliSecTime(0));
-
- // Replica set changes between time of Get requests sent and
- // responses received. This may happen e.g. if concurrent mutations
- // to the same bucket create a new replica. If this happens, we
- // must not send the Update operations verbatim, as they will
- // be started with the _current_ replica set, not the one that
- // was present during the Get request.
- BucketId bucket(0x400000000000cac4); // Always the same in the test.
- addNodesToBucketDB(bucket, "0=1/2/3,1=2/3/4,2=3/3/3");
-
- Timestamp old_timestamp = 500;
- ASSERT_EQ("Get => 0,Get => 1", sender.getCommands(true));
- replyToGet(*cb, sender, 0, old_timestamp);
- replyToGet(*cb, sender, 1, old_timestamp);
-
- ASSERT_EQ("Put => 1,Put => 2,Put => 0", sender.getCommands(true, false, 2));
+ setupDistributor(3, 3, "storage:3 distributor:1");
+ getConfig().set_update_fast_path_restart_enabled(true);
+
+ std::shared_ptr<TwoPhaseUpdateOperation> cb(sendUpdate("0=1/2/3,1=2/3/4")); // Inconsistent replicas.
+ DistributorMessageSenderStub sender;
+ cb->start(sender, framework::MilliSecTime(0));
+
+ // Replica set changes between time of Get requests sent and
+ // responses received. This may happen e.g. if concurrent mutations
+ // to the same bucket create a new replica. If this happens, we
+ // must not send the Update operations verbatim, as they will
+ // be started with the _current_ replica set, not the one that
+ // was present during the Get request.
+ BucketId bucket(0x400000000000cac4); // Always the same in the test.
+ addNodesToBucketDB(bucket, "0=1/2/3,1=2/3/4,2=3/3/3");
+
+ Timestamp old_timestamp = 500;
+ ASSERT_EQ("Get => 0,Get => 1", sender.getCommands(true));
+ replyToGet(*cb, sender, 0, old_timestamp);
+ replyToGet(*cb, sender, 1, old_timestamp);
+
+ ASSERT_EQ("Put => 1,Put => 2,Put => 0", sender.getCommands(true, false, 2));
}
// XXX currently differs in behavior from content nodes in that updates for