Mike Percy has posted comments on this change. ( http://gerrit.cloudera.org:8080/8679 )
Change subject: KUDU-1097: more robust criteria for replica eviction ...................................................................... Patch Set 10: Code-Review+1 (4 comments) just a couple last nits, this is basically ready to go http://gerrit.cloudera.org:8080/#/c/8679/10/src/kudu/consensus/quorum_util.cc File src/kudu/consensus/quorum_util.cc: http://gerrit.cloudera.org:8080/#/c/8679/10/src/kudu/consensus/quorum_util.cc@622 PS10, Line 622: num_non_voters_total > 0 && can't we remove this now that it was moved to line 610? http://gerrit.cloudera.org:8080/#/c/8679/10/src/kudu/consensus/quorum_util.cc@654 PS10, Line 654: It's a special case nit: In the special case http://gerrit.cloudera.org:8080/#/c/8679/8/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc File src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc: http://gerrit.cloudera.org:8080/#/c/8679/8/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc@1521 PS8, Line 1521: bool has_leader = false; : TabletLocationsPB tablet_locations; : ASSERT_OK(WaitForReplicasReportedToMaster(cluster_->master_proxy(), : kReplicasNum, : tablet_id_, : kTimeout, : WAIT_FOR_LEADER, : ANY_REPLICA, > This method does not retry if master replies with something like 'catalog m I don't think that was intentional but Rev 10 seems fine to me. http://gerrit.cloudera.org:8080/#/c/8679/8/src/kudu/integration-tests/raft_consensus_nonvoter-itest.cc@1537 PS8, Line 1537: ASSERT_FALSE(IsRaftConfigMember(follower_uuid, cstate.committed_config())) : << pb_util::SecureDebugString(cstate.committed_config()) : << "fell behind WAL replica UUID: " << follower_uuid; : // The first non-voter replica failed during the tablet copy phase : // should not be present. : ASSERT_FALSE(IsRaftConfigMember(ts0->uuid(), cstate.committed_config())) : << pb_util::SecureDebugString(cstate.committed_config()) : << "failed tablet copy replica UUID: " << ts0->uuid(); : // The tablet copy on the restarted server should succeed and this replica : // should replace the original failed replica. : ASSERT_TRUE(IsRaftConfigMember(ts1->uuid(), cstate.committed_config())) : << pb_util::SecureDebugString(cstate.committed_config()) : << "new replacement replica UUID: " << ts1->uuid(); : }); : } > I think it's enough to have just one outer ASSERT_EVENTUALLY. +1 -- To view, visit http://gerrit.cloudera.org:8080/8679 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2062c2963fface43062b3154bf5ffa61b4fa684f Gerrit-Change-Number: 8679 Gerrit-PatchSet: 10 Gerrit-Owner: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <mpe...@apache.org> Gerrit-Reviewer: Tidy Bot Gerrit-Comment-Date: Tue, 12 Dec 2017 04:36:27 +0000 Gerrit-HasComments: Yes