Alexey Serbin has posted comments on this change.

Change subject: KUDU-871. Support tombstoned voting
......................................................................


Patch Set 10:

(12 comments)

http://gerrit.cloudera.org:8080/#/c/6960/10/src/kudu/integration-tests/cluster_itest_util.h
File src/kudu/integration-tests/cluster_itest_util.h:

PS10, Line 236: // Request the given replica to vote.
nit: could you document at least first 5 parameters of this method?


http://gerrit.cloudera.org:8080/#/c/6960/10/src/kudu/integration-tests/tombstoned_voting-itest.cc
File src/kudu/integration-tests/tombstoned_voting-itest.cc:

Line 18: #include "kudu/consensus/metadata.pb.h"
nit: from IWYU

src/kudu/integration-tests/tombstoned_voting-itest.cc should add these
 lines:
#include <gflags/gflags_declare.h>
#include <glog/logging.h>
#include <gtest/gtest.h>
#include <boost/optional/optional.hpp>
#include <cstdint>
#include <memory>
#include <ostream>
#include <string>
#include <unordered_map>
#include <vector>
#include "kudu/consensus/consensus.pb.h"
#include "kudu/consensus/opid.pb.h"
#include "kudu/consensus/opid_util.h"
#include "kudu/fs/fs_manager.h"
#include "kudu/gutil/ref_counted.h"
#include "kudu/integration-tests/internal_mini_cluster.h"
#include "kudu/tablet/metadata.pb.h"
#include "kudu/tserver/tserver.pb.h"
#include "kudu/util/env.h"
#include "kudu/util/monotime.h"
#include "kudu/util/status.h"
#include "kudu/util/test_macros.h"
#include "kudu/util/test_util.h"


PS10, Line 167: TS1
nit: the tablet?  Or it's possible to tombstone a tablet server now?


PS10, Line 172: TServerDetails* ts1_ets
nit: consider moving this closer to the call site where it's used.


Line 173:   scoped_refptr<TabletReplica> replica;
nit: does it make sense to verify the scenario below works without errors even 
after restarting the tablet server TS1?


PS10, Line 181: "A"
Could you add a comment explaining that the actual candidate UUID is not 
crucial in this test?


PS10, Line 249: ts0_replica->consensus()->StepDown(&resp)
nit: should it be some selective error handling based on the code set in the 
'resp'?  What if it failed due to some other reason -- would the test handle 
that properly?


PS10, Line 253: ts0
nit: 'TS0' since it has been referred as that already.


PS10, Line 256: FOLLOWER
Could it change to something like 'LEARNER' in the middle and bring some 
flakiness?


http://gerrit.cloudera.org:8080/#/c/6960/10/src/kudu/integration-tests/tombstoned_voting-stress-test.cc
File src/kudu/integration-tests/tombstoned_voting-stress-test.cc:

Line 18: #include <atomic>
nit: from IWYU report:

src/kudu/integration-tests/tombstoned_voting-stress-test.cc should add these 
lines:
#include <glog/logging.h>
#include <gtest/gtest.h>
#include <boost/optional/optional.hpp>
#include <cstdint>
#include <memory>
#include <ostream>
#include <string>
#include <unordered_map>
#include <vector>
#include "kudu/common/wire_protocol.pb.h"
#include "kudu/consensus/consensus.pb.h"
#include "kudu/consensus/opid.pb.h"
#include "kudu/gutil/macros.h"
#include "kudu/integration-tests/external_mini_cluster.h"
#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
#include "kudu/tablet/metadata.pb.h"
#include "kudu/util/monotime.h"
#include "kudu/util/net/net_util.h"
#include "kudu/util/status.h"
#include "kudu/util/test_macros.h"
#include "kudu/util/test_util.h"

src/kudu/integration-tests/tombstoned_voting-stress-test.cc should remove these 
lines:
- #include "kudu/consensus/metadata.pb.h"  // lines 25-25
- #include "kudu/consensus/raft_consensus.h"  // lines 26-26
- #include "kudu/util/random.h"  // lines 32-32


http://gerrit.cloudera.org:8080/#/c/6960/10/src/kudu/master/catalog_manager.cc
File src/kudu/master/catalog_manager.cc:

Line 2489:     LOG(WARNING) << "Tablet " << tablet->ToString() << " has failed 
on TS "
wouldn't it be natural to have tablet::SHUTDOWN check here instead?  Or it's 
not guaranteed to be SHUTDOWN at this point?


http://gerrit.cloudera.org:8080/#/c/6960/10/src/kudu/tablet/tablet_replica.cc
File src/kudu/tablet/tablet_replica.cc:

PS10, Line 304: LOG(DFATAL)
The rest of the CHECKs would work for non-debug builds as well.  What is the 
reason of having LOG(DFATAL), not LOG(FATAL) here?  If there is any, please add 
a comment.


-- 
To view, visit http://gerrit.cloudera.org:8080/6960
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia19d75b185299443b27f41e468bbae20065e7570
Gerrit-PatchSet: 10
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Mike Percy <mpe...@apache.org>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: David Ribeiro Alves <davidral...@gmail.com>
Gerrit-Reviewer: Edward Fancher <e...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <mpe...@apache.org>
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-HasComments: Yes

Reply via email to