You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2018/04/23 21:54:32 UTC

[1/3] kudu git commit: Support running full Gradle builds in build-and-test.sh

Repository: kudu
Updated Branches:
  refs/heads/master 28d847513 -> b69f288e9


Support running full Gradle builds in build-and-test.sh

As a first step to using the Gradle build as the primary build
and phasing out Maven, this patch makes it possible to
choose between Maven and Gradle in build-and-test.sh.

A follow on patch will make Gradle the default.

Change-Id: I27a1bd330227d735f2139ceb420947528363f81c
Reviewed-on: http://gerrit.cloudera.org:8080/10152
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo <ad...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/90c1e1c2
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/90c1e1c2
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/90c1e1c2

Branch: refs/heads/master
Commit: 90c1e1c26bbad4c402b575562504b41aa3bd4b7f
Parents: 28d8475
Author: Grant Henke <gr...@apache.org>
Authored: Sun Apr 22 22:56:46 2018 -0500
Committer: Grant Henke <gr...@apache.org>
Committed: Mon Apr 23 21:11:42 2018 +0000

----------------------------------------------------------------------
 build-support/jenkins/build-and-test.sh | 37 +++++++++++++++-------------
 1 file changed, 20 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/90c1e1c2/build-support/jenkins/build-and-test.sh
----------------------------------------------------------------------
diff --git a/build-support/jenkins/build-and-test.sh b/build-support/jenkins/build-and-test.sh
index 35fddb1..cf60d40 100755
--- a/build-support/jenkins/build-and-test.sh
+++ b/build-support/jenkins/build-and-test.sh
@@ -56,9 +56,11 @@
 #   BUILD_JAVA        Default: 1
 #     Build and test java code if this is set to 1.
 #
-#   BUILD_GRADLE      Default: 1
-#     When building java code, also build the gradle build if this is set
-#     to 1.
+#   BUILD_MAVEN       Default: 1
+#     When building java code, build with Maven if this is set to 1.
+#
+#   BUILD_GRADLE      Default: 0
+#     When building java code, build with Gradle if this is set to 1.
 #
 #   BUILD_PYTHON       Default: 1
 #     Build and test the Python wrapper of the client API.
@@ -110,7 +112,8 @@ export KUDU_ALLOW_SLOW_TESTS=${KUDU_ALLOW_SLOW_TESTS:-$DEFAULT_ALLOW_SLOW_TESTS}
 export KUDU_COMPRESS_TEST_OUTPUT=${KUDU_COMPRESS_TEST_OUTPUT:-1}
 export TEST_TMPDIR=${TEST_TMPDIR:-/tmp/kudutest-$UID}
 BUILD_JAVA=${BUILD_JAVA:-1}
-BUILD_GRADLE=${BUILD_GRADLE:-1}
+BUILD_MAVEN=${BUILD_MAVEN:-1}
+BUILD_GRADLE=${BUILD_GRADLE:-0}
 BUILD_PYTHON=${BUILD_PYTHON:-1}
 BUILD_PYTHON3=${BUILD_PYTHON3:-1}
 
@@ -201,7 +204,6 @@ elif [ "$BUILD_TYPE" = "COVERAGE" ]; then
 
   # We currently dont capture coverage for Java or Python.
   BUILD_JAVA=0
-  BUILD_GRADLE=0
   BUILD_PYTHON=0
   BUILD_PYTHON3=0
 elif [ "$BUILD_TYPE" = "LINT" ]; then
@@ -320,7 +322,6 @@ if [ "$RUN_FLAKY_ONLY" == "1" ] ; then
   BUILD_PYTHON=0
   BUILD_PYTHON3=0
   BUILD_JAVA=0
-  BUILD_GRADLE=0
 fi
 
 EXIT_STATUS=0
@@ -375,22 +376,24 @@ if [ "$BUILD_JAVA" == "1" ]; then
   set -x
 
   # Run the full Maven build.
-  MVN_FLAGS="$MVN_FLAGS -B"
-  MVN_FLAGS="$MVN_FLAGS -Dsurefire.rerunFailingTestsCount=3"
-  MVN_FLAGS="$MVN_FLAGS -Dfailsafe.rerunFailingTestsCount=3"
-  MVN_FLAGS="$MVN_FLAGS -Dmaven.javadoc.skip"
-  if ! mvn $MVN_FLAGS clean verify ; then
-    EXIT_STATUS=1
-    FAILURES="$FAILURES"$'Java build/test failed\n'
+  if [ "$BUILD_MAVEN" == "1" ]; then
+      MVN_FLAGS="$MVN_FLAGS -B"
+      MVN_FLAGS="$MVN_FLAGS -Dsurefire.rerunFailingTestsCount=3"
+      MVN_FLAGS="$MVN_FLAGS -Dfailsafe.rerunFailingTestsCount=3"
+      MVN_FLAGS="$MVN_FLAGS -Dmaven.javadoc.skip"
+      if ! mvn $MVN_FLAGS clean verify ; then
+        EXIT_STATUS=1
+        FAILURES="$FAILURES"$'Java Maven build/test failed\n'
+      fi
   fi
 
-  # Rerun the build using the Gradle build.
-  # Note: We just ensure we can assemble and don't rerun the tests.
+  # Run the full Gradle build.
   if [ "$BUILD_GRADLE" == "1" ]; then
      GRADLE_FLAGS="$GRADLE_FLAGS --console=plain --no-daemon"
-     if ! ./gradlew $GRADLE_FLAGS clean assemble; then
+     # TODO: Run `gradle check` in BUILD_TYPE DEBUG when static code analysis is fixed
+     if ! ./gradlew $GRADLE_FLAGS clean test integrationTest ; then
        EXIT_STATUS=1
-       FAILURES="$FAILURES"$'Java Gradle build failed\n'
+       FAILURES="$FAILURES"$'Java Gradle build/test failed\n'
      fi
   fi
 


[2/3] kudu git commit: Various fixes for clang-tidy errors

Posted by gr...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/transactions/transaction_driver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_driver.cc b/src/kudu/tablet/transactions/transaction_driver.cc
index 7dfb28a..beed972 100644
--- a/src/kudu/tablet/transactions/transaction_driver.cc
+++ b/src/kudu/tablet/transactions/transaction_driver.cc
@@ -73,10 +73,10 @@ class FollowerTransactionCompletionCallback : public TransactionCompletionCallba
  public:
   FollowerTransactionCompletionCallback(const RequestIdPB& request_id,
                                         const google::protobuf::Message* response,
-                                        const scoped_refptr<ResultTracker>& result_tracker)
+                                        scoped_refptr<ResultTracker> result_tracker)
       : request_id_(request_id),
         response_(response),
-        result_tracker_(result_tracker) {}
+        result_tracker_(std::move(result_tracker)) {}
 
   virtual void TransactionCompleted() {
     if (status_.ok()) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/transactions/transaction_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_tracker.cc b/src/kudu/tablet/transactions/transaction_tracker.cc
index 76d2d88..cc459ec 100644
--- a/src/kudu/tablet/transactions/transaction_tracker.cc
+++ b/src/kudu/tablet/transactions/transaction_tracker.cc
@@ -227,7 +227,7 @@ Status TransactionTracker::WaitForAllToFinish(const MonoDelta& timeout) const {
       LOG(WARNING) << Substitute("TransactionTracker waiting for $0 outstanding transactions to"
                                  " complete now for $1", txns.size(), diff.ToString());
       LOG(INFO) << "Dumping currently running transactions: ";
-      for (scoped_refptr<TransactionDriver> driver : txns) {
+      for (const auto& driver : txns) {
         LOG(INFO) << driver->ToString();
       }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tools/ksck-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck-test.cc b/src/kudu/tools/ksck-test.cc
index 5d9f9e8..c5f851e 100644
--- a/src/kudu/tools/ksck-test.cc
+++ b/src/kudu/tools/ksck-test.cc
@@ -574,11 +574,11 @@ TEST_F(KsckTest, TestOneSmallReplicatedTableWithConsensusState) {
   CreateOneSmallReplicatedTable();
   ASSERT_OK(RunKsck());
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 3,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 0,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 0));
+                                                                  /*healthy_tablets=*/ 3,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 0,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 0));
 }
 
 TEST_F(KsckTest, TestConsensusConflictExtraPeer) {
@@ -601,11 +601,11 @@ TEST_F(KsckTest, TestConsensusConflictExtraPeer) {
       " B             | A*  B   C        | 0            |              | Yes\n"
       " C             | A*  B   C        | 0            |              | Yes");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 2,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 0,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 1));
+                                                                  /*healthy_tablets=*/ 2,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 0,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 1));
 }
 
 TEST_F(KsckTest, TestConsensusConflictMissingPeer) {
@@ -628,11 +628,11 @@ TEST_F(KsckTest, TestConsensusConflictMissingPeer) {
       " B             | A*  B   C    | 0            |              | Yes\n"
       " C             | A*  B   C    | 0            |              | Yes");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 2,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 0,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 1));
+                                                                  /*healthy_tablets=*/ 2,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 0,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 1));
 }
 
 TEST_F(KsckTest, TestConsensusConflictDifferentLeader) {
@@ -655,11 +655,11 @@ TEST_F(KsckTest, TestConsensusConflictDifferentLeader) {
       " B             | A*  B   C    | 0            |              | Yes\n"
       " C             | A*  B   C    | 0            |              | Yes");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 2,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 0,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 1));
+                                                                  /*healthy_tablets=*/ 2,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 0,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 1));
 }
 
 TEST_F(KsckTest, TestOneOneTabletBrokenTable) {
@@ -670,11 +670,11 @@ TEST_F(KsckTest, TestOneOneTabletBrokenTable) {
                       "Tablet tablet-id-1 of table 'test' is under-replicated: "
                       "configuration has 2 replicas vs desired 3");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 0,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 1,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 0));
+                                                                  /*healthy_tablets=*/ 0,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 1,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 0));
 }
 
 TEST_F(KsckTest, TestMismatchedAssignments) {
@@ -692,11 +692,11 @@ TEST_F(KsckTest, TestMismatchedAssignments) {
                       "  ts-id-1 (<mock>): RUNNING\n"
                       "  ts-id-2 (<mock>): RUNNING\n");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 2,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 1,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 0));
+                                                                  /*healthy_tablets=*/ 2,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 1,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 0));
 }
 
 TEST_F(KsckTest, TestTabletNotRunning) {
@@ -720,11 +720,11 @@ TEST_F(KsckTest, TestTabletNotRunning) {
       "    Data state:  TABLET_DATA_UNKNOWN\n"
       "    Last status: \n");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 2,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 0,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 1));
+                                                                  /*healthy_tablets=*/ 2,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 0,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 1));
 }
 
 TEST_F(KsckTest, TestTabletCopying) {
@@ -740,11 +740,11 @@ TEST_F(KsckTest, TestTabletCopying) {
   ASSERT_EQ("Corruption: 1 out of 1 table(s) are not healthy", s.ToString());
   ASSERT_STR_CONTAINS(err_stream_.str(), "Table test has 1 recovering tablet(s)");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 2,
-                                                                  /*recovering_tables=*/ 1,
-                                                                  /*underreplicated_tables=*/ 0,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 0));
+                                                                  /*healthy_tablets=*/ 2,
+                                                                  /*recovering_tablets=*/ 1,
+                                                                  /*underreplicated_tablets=*/ 0,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 0));
 }
 
 // Test for a bug where we weren't properly handling a tserver not reported by the master.
@@ -759,11 +759,11 @@ TEST_F(KsckTest, TestMasterNotReportingTabletServer) {
   ASSERT_EQ("Corruption: 1 out of 1 table(s) are not healthy", s.ToString());
   ASSERT_STR_CONTAINS(err_stream_.str(), "Table test has 3 under-replicated tablet(s)");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 0,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 3,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 0));
+                                                                  /*healthy_tablets=*/ 0,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 3,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 0));
 }
 
 // KUDU-2113: Test for a bug where we weren't properly handling a tserver not
@@ -792,11 +792,11 @@ TEST_F(KsckTest, TestMasterNotReportingTabletServerWithConsensusConflict) {
       " B             | A   B*  C              | 0            |              | Yes\n"
       " C             | A*  B   C              | 0            |              | Yes");
   ASSERT_STR_CONTAINS(err_stream_.str(), ExpectedKsckTableSummary("test",
-                                                                  /*healthy_tables=*/ 0,
-                                                                  /*recovering_tables=*/ 0,
-                                                                  /*underreplicated_tables=*/ 3,
-                                                                  /*consensus_mismatch_tables=*/ 0,
-                                                                  /*unavailable_tables=*/ 0));
+                                                                  /*healthy_tablets=*/ 0,
+                                                                  /*recovering_tablets=*/ 0,
+                                                                  /*underreplicated_tablets=*/ 3,
+                                                                  /*consensus_mismatch_tablets=*/ 0,
+                                                                  /*unavailable_tablets=*/ 0));
 }
 
 TEST_F(KsckTest, TestTableFiltersNoMatch) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tools/ksck.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck.cc b/src/kudu/tools/ksck.cc
index 3bc296c..78d02b2 100644
--- a/src/kudu/tools/ksck.cc
+++ b/src/kudu/tools/ksck.cc
@@ -509,8 +509,8 @@ Status Ksck::CheckTablesConsistency() {
     // If the summary has no tablets (because of tablet id filters), don't
     // save the summary.
     if (ts.TotalTablets() > 0) {
-      table_summaries.emplace_back(std::move(ts));
       total_tablets += ts.TotalTablets();
+      table_summaries.emplace_back(std::move(ts));
     }
   }
 
@@ -811,7 +811,7 @@ Status Ksck::ChecksumData(const ChecksumOptions& opts) {
                       FindOrDie(checksums, tablet->id())) {
           const string& replica_uuid = r.first;
 
-          shared_ptr<KsckTabletServer> ts = FindOrDie(cluster_->tablet_servers(), replica_uuid);
+          const auto& ts = FindOrDie(cluster_->tablet_servers(), replica_uuid);
           const ChecksumResultReporter::ResultPair& result = r.second;
           const Status& status = result.first;
           uint64_t checksum = result.second;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tools/tool_action.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action.cc b/src/kudu/tools/tool_action.cc
index 307c8ce..54291ba 100644
--- a/src/kudu/tools/tool_action.cc
+++ b/src/kudu/tools/tool_action.cc
@@ -62,7 +62,7 @@ string FakeDescribeOneFlag(const ActionArgsDescriptor::Arg& arg) {
 
   // Strip the first dash from the description; this is a positional parameter
   // so let's make sure it looks like one.
-  string::size_type first_dash_idx = res.find("-");
+  string::size_type first_dash_idx = res.find('-');
   DCHECK_NE(string::npos, first_dash_idx);
   return res.substr(0, first_dash_idx) + res.substr(first_dash_idx + 1);
 }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tools/tool_action_cluster.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_cluster.cc b/src/kudu/tools/tool_action_cluster.cc
index 23ec6f3..2b31056 100644
--- a/src/kudu/tools/tool_action_cluster.cc
+++ b/src/kudu/tools/tool_action_cluster.cc
@@ -38,7 +38,7 @@
 #define PUSH_PREPEND_NOT_OK(s, statuses, msg) do { \
   ::kudu::Status _s = (s); \
   if (PREDICT_FALSE(!_s.ok())) { \
-    statuses.push_back(string(msg) + ": " + _s.message().ToString()); \
+    (statuses).push_back(string((msg)) + ": " + _s.message().ToString()); \
   } \
 } while (0);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tools/tool_action_local_replica.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_local_replica.cc b/src/kudu/tools/tool_action_local_replica.cc
index 885474c..ce6a951 100644
--- a/src/kudu/tools/tool_action_local_replica.cc
+++ b/src/kudu/tools/tool_action_local_replica.cc
@@ -231,7 +231,7 @@ Status FindLastLoggedOpId(FsManager* fs, const string& tablet_id,
 Status ParsePeerString(const string& peer_str,
                        string* uuid,
                        HostPort* hostport) {
-  string::size_type first_colon_idx = peer_str.find(":");
+  string::size_type first_colon_idx = peer_str.find(':');
   if (first_colon_idx == string::npos) {
     return Status::InvalidArgument(Substitute("bad peer '$0'", peer_str));
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tools/tool_action_remote_replica.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_remote_replica.cc b/src/kudu/tools/tool_action_remote_replica.cc
index d427224..a62d695 100644
--- a/src/kudu/tools/tool_action_remote_replica.cc
+++ b/src/kudu/tools/tool_action_remote_replica.cc
@@ -15,15 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/tools/tool_action.h"
-
 #include <cstdint>
 #include <iostream>
 #include <limits>
 #include <memory>
 #include <string>
-#include <utility>
 #include <unordered_map>
+#include <utility>
 #include <vector>
 
 #include <gflags/gflags.h>
@@ -43,7 +41,6 @@
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus.proxy.h"
 #include "kudu/consensus/metadata.pb.h"
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -51,6 +48,7 @@
 #include "kudu/server/server_base.pb.h"
 #include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet.pb.h"
+#include "kudu/tools/tool_action.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/tserver.pb.h"
@@ -149,7 +147,7 @@ class ReplicaDumper {
                                   &schema,
                                   &client_schema,
                                   client::KuduScanner::NO_FLAGS,
-                                  make_gscoped_ptr(resp.release_data())));
+                                  unique_ptr<RowwiseRowBlockPB>(resp.release_data())));
       vector<KuduRowResult> rows;
       results.ExtractRows(&rows);
       for (const auto& r : rows) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tserver/tablet_copy_source_session-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_source_session-test.cc b/src/kudu/tserver/tablet_copy_source_session-test.cc
index 66dc9a6..0633312 100644
--- a/src/kudu/tserver/tablet_copy_source_session-test.cc
+++ b/src/kudu/tserver/tablet_copy_source_session-test.cc
@@ -274,7 +274,7 @@ TEST_F(TabletCopyTest, TestSuperBlocksEqual) {
     int size = session_superblock.ByteSize();
     session_buf.resize(size);
     uint8_t* session_dst = session_buf.data();
-    session_dst = session_superblock.SerializeWithCachedSizesToArray(session_dst);
+    session_superblock.SerializeWithCachedSizesToArray(session_dst);
   }
 
   {
@@ -283,7 +283,7 @@ TEST_F(TabletCopyTest, TestSuperBlocksEqual) {
     int size = tablet_superblock.ByteSize();
     tablet_buf.resize(size);
     uint8_t* tablet_dst = tablet_buf.data();
-    tablet_dst = tablet_superblock.SerializeWithCachedSizesToArray(tablet_dst);
+    tablet_superblock.SerializeWithCachedSizesToArray(tablet_dst);
   }
 
   ASSERT_EQ(session_buf.size(), tablet_buf.size());

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tserver/tablet_copy_source_session.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_source_session.cc b/src/kudu/tserver/tablet_copy_source_session.cc
index 18bb5fb..546570d 100644
--- a/src/kudu/tserver/tablet_copy_source_session.cc
+++ b/src/kudu/tserver/tablet_copy_source_session.cc
@@ -93,10 +93,10 @@ TabletCopySourceMetrics::TabletCopySourceMetrics(const scoped_refptr<MetricEntit
 }
 
 TabletCopySourceSession::TabletCopySourceSession(
-    const scoped_refptr<TabletReplica>& tablet_replica, std::string session_id,
+    scoped_refptr<TabletReplica> tablet_replica, std::string session_id,
     std::string requestor_uuid, FsManager* fs_manager,
     TabletCopySourceMetrics* tablet_copy_metrics)
-    : tablet_replica_(tablet_replica),
+    : tablet_replica_(std::move(tablet_replica)),
       session_id_(std::move(session_id)),
       requestor_uuid_(std::move(requestor_uuid)),
       fs_manager_(fs_manager),

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tserver/tablet_copy_source_session.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_source_session.h b/src/kudu/tserver/tablet_copy_source_session.h
index 3c433ed..3795d3f 100644
--- a/src/kudu/tserver/tablet_copy_source_session.h
+++ b/src/kudu/tserver/tablet_copy_source_session.h
@@ -97,7 +97,7 @@ struct ImmutableReadableBlockInfo {
 // on expiration while it is in use by another thread.
 class TabletCopySourceSession : public RefCountedThreadSafe<TabletCopySourceSession> {
  public:
-  TabletCopySourceSession(const scoped_refptr<tablet::TabletReplica>& tablet_replica,
+  TabletCopySourceSession(scoped_refptr<tablet::TabletReplica> tablet_replica,
                           std::string session_id,
                           std::string requestor_uuid,
                           FsManager* fs_manager,

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tserver/ts_tablet_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/ts_tablet_manager.cc b/src/kudu/tserver/ts_tablet_manager.cc
index 034d6ab..59fb0d6 100644
--- a/src/kudu/tserver/ts_tablet_manager.cc
+++ b/src/kudu/tserver/ts_tablet_manager.cc
@@ -39,6 +39,7 @@
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
@@ -476,7 +477,7 @@ class TabletCopyRunnable : public TabletManagerRunnable {
   TabletCopyRunnable(TSTabletManager* ts_tablet_manager,
                      const StartTabletCopyRequestPB* req,
                      std::function<void(const Status&, TabletServerErrorPB::Code)> cb)
-      : TabletManagerRunnable(ts_tablet_manager, cb),
+      : TabletManagerRunnable(ts_tablet_manager, std::move(cb)),
         req_(req) {
   }
 
@@ -812,12 +813,12 @@ Status TSTabletManager::BeginReplicaStateTransition(
 class DeleteTabletRunnable : public TabletManagerRunnable {
 public:
   DeleteTabletRunnable(TSTabletManager* ts_tablet_manager,
-                       const std::string& tablet_id,
+                       std::string tablet_id,
                        tablet::TabletDataState delete_type,
-                       const boost::optional<int64_t>& cas_config_index,
+                       const boost::optional<int64_t>& cas_config_index, // NOLINT
                        std::function<void(const Status&, TabletServerErrorPB::Code)> cb)
-      : TabletManagerRunnable(ts_tablet_manager, cb),
-        tablet_id_(tablet_id),
+      : TabletManagerRunnable(ts_tablet_manager, std::move(cb)),
+        tablet_id_(std::move(tablet_id)),
         delete_type_(delete_type),
         cas_config_index_(cas_config_index) {
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/curl_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/curl_util.cc b/src/kudu/util/curl_util.cc
index f061dc5..b93d723 100644
--- a/src/kudu/util/curl_util.cc
+++ b/src/kudu/util/curl_util.cc
@@ -80,7 +80,7 @@ Status EasyCurl::DoRequest(const std::string& url,
 
   RETURN_NOT_OK(TranslateError(curl_easy_setopt(
       curl_, CURLOPT_SSL_VERIFYPEER,
-      static_cast<long>(verify_peer_)))); // NOLINT(runtime/int)
+      static_cast<long>(verify_peer_)))); // NOLINT
   RETURN_NOT_OK(TranslateError(curl_easy_setopt(curl_, CURLOPT_URL, url.c_str())));
   if (return_headers_) {
     RETURN_NOT_OK(TranslateError(curl_easy_setopt(curl_, CURLOPT_HEADER, 1)));
@@ -100,7 +100,7 @@ Status EasyCurl::DoRequest(const std::string& url,
         timeout_.ToMilliseconds())));
   }
   RETURN_NOT_OK(TranslateError(curl_easy_perform(curl_)));
-  long rc; // NOLINT(runtime/int) curl wants a long
+  long rc; // NOLINT(*) curl wants a long
   RETURN_NOT_OK(TranslateError(curl_easy_getinfo(curl_, CURLINFO_RESPONSE_CODE, &rc)));
   if (rc != 200) {
     return Status::RemoteError(strings::Substitute("HTTP $0", rc));

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/debug/trace_event_impl.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event_impl.cc b/src/kudu/util/debug/trace_event_impl.cc
index ca1862d..155faf7 100644
--- a/src/kudu/util/debug/trace_event_impl.cc
+++ b/src/kudu/util/debug/trace_event_impl.cc
@@ -115,7 +115,7 @@ static void NOTIMPLEMENTED() {
 
 class TraceBufferRingBuffer : public TraceBuffer {
  public:
-  TraceBufferRingBuffer(size_t max_chunks)
+  explicit TraceBufferRingBuffer(size_t max_chunks)
       : max_chunks_(max_chunks),
         recyclable_chunks_queue_(new size_t[queue_capacity()]),
         queue_head_(0),
@@ -451,7 +451,7 @@ gscoped_ptr<TraceBufferChunk> TraceBufferChunk::Clone() const {
 // and unlocks at the end of scope if locked.
 class TraceLog::OptionalAutoLock {
  public:
-  explicit OptionalAutoLock(base::SpinLock& lock)
+  explicit OptionalAutoLock(base::SpinLock& lock) // NOLINT(google-runtime-references)
       : lock_(lock),
         locked_(false) {
   }
@@ -1029,7 +1029,7 @@ TraceBucketData::~TraceBucketData() {
 
 class TraceLog::ThreadLocalEventBuffer {
  public:
-  ThreadLocalEventBuffer(TraceLog* trace_log);
+  explicit ThreadLocalEventBuffer(TraceLog* trace_log);
   virtual ~ThreadLocalEventBuffer();
 
   TraceEvent* AddTraceEvent(TraceEventHandle* handle);
@@ -1642,6 +1642,7 @@ void TraceLog::ConvertTraceEventsToTraceFormat(
 
     flush_output_callback.Run(json_events_str_ptr, has_more_events);
   } while (has_more_events);
+  logged_events.reset();
 }
 
 void TraceLog::FinishFlush(int generation,

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/easy_json.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/easy_json.cc b/src/kudu/util/easy_json.cc
index c6cb597..9057b50 100644
--- a/src/kudu/util/easy_json.cc
+++ b/src/kudu/util/easy_json.cc
@@ -17,8 +17,9 @@
 
 #include "kudu/util/easy_json.h"
 
-#include <string>
 #include <ostream>
+#include <string>
+#include <utility>
 
 #include <glog/logging.h>
 #include <rapidjson/document.h>
@@ -205,7 +206,7 @@ string EasyJson::ToString() const {
   return buffer.GetString();
 }
 
-EasyJson::EasyJson(Value* value, const scoped_refptr<EasyJsonAllocator>& alloc)
-    : alloc_(alloc), value_(value) {}
+EasyJson::EasyJson(Value* value, scoped_refptr<EasyJsonAllocator> alloc)
+    : alloc_(std::move(alloc)), value_(value) {}
 
 } // namespace kudu

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/easy_json.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/easy_json.h b/src/kudu/util/easy_json.h
index 365224a..bd0365a 100644
--- a/src/kudu/util/easy_json.h
+++ b/src/kudu/util/easy_json.h
@@ -176,7 +176,7 @@ class EasyJson {
   };
 
   // Used to instantiate descendant objects.
-  EasyJson(rapidjson::Value* value, const scoped_refptr<EasyJsonAllocator>& alloc);
+  EasyJson(rapidjson::Value* value, scoped_refptr<EasyJsonAllocator> alloc);
 
   // One allocator is shared among an EasyJson object and
   // all of its descendants.

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/hdr_histogram.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/hdr_histogram.cc b/src/kudu/util/hdr_histogram.cc
index 68894c7..4907444 100644
--- a/src/kudu/util/hdr_histogram.cc
+++ b/src/kudu/util/hdr_histogram.cc
@@ -303,8 +303,8 @@ uint64_t HdrHistogram::ValueAtPercentile(double percentile) const {
   if (PREDICT_FALSE(count == 0)) return 0;
 
   double requested_percentile = std::min(percentile, 100.0); // Truncate down to 100%
-  uint64_t count_at_percentile =
-    static_cast<uint64_t>(((requested_percentile / 100.0) * count) + 0.5); // Round
+  uint64_t count_at_percentile = static_cast<uint64_t>(
+      ((requested_percentile / 100.0) * count) + 0.5); // NOLINT(misc-incorrect-roundings)
   // Make sure we at least reach the first recorded entry
   count_at_percentile = std::max(count_at_percentile, static_cast<uint64_t>(1));
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/hexdump.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/hexdump.cc b/src/kudu/util/hexdump.cc
index 59634c2..ddecd9c 100644
--- a/src/kudu/util/hexdump.cc
+++ b/src/kudu/util/hexdump.cc
@@ -22,6 +22,8 @@
 #include <cstdint>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/slice.h"
@@ -58,6 +60,7 @@ std::string HexDump(const Slice &slice) {
       p += 1;
       line_rem -= 1;
     }
+    DCHECK_EQ(line_rem, 0);
 
     int padding = (16 - line_len) / 2;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/inline_slice.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/inline_slice.h b/src/kudu/util/inline_slice.h
index 692617b..248f5b1 100644
--- a/src/kudu/util/inline_slice.h
+++ b/src/kudu/util/inline_slice.h
@@ -82,12 +82,11 @@ class InlineSlice {
       const uint8_t *indir_data = reinterpret_cast<const uint8_t *>(dptr.pointer);
       uint32_t len = *reinterpret_cast<const uint32_t *>(indir_data);
       indir_data += sizeof(uint32_t);
-      return Slice(indir_data, (size_t)len);
-    } else {
-      uint8_t len = dptr.discriminator;
-      DCHECK_LE(len, STORAGE_SIZE - 1);
-      return Slice(&buf_[1], len);
+      return Slice(indir_data, static_cast<size_t>(len));
     }
+    uint8_t len = dptr.discriminator;
+    DCHECK_LE(len, STORAGE_SIZE - 1);
+    return Slice(&buf_[1], len);
   }
 
   template<class ArenaType>

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/mem_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mem_tracker.cc b/src/kudu/util/mem_tracker.cc
index 4cf2866..f7294d1 100644
--- a/src/kudu/util/mem_tracker.cc
+++ b/src/kudu/util/mem_tracker.cc
@@ -56,8 +56,13 @@ void MemTracker::CreateRootTracker() {
 
 shared_ptr<MemTracker> MemTracker::CreateTracker(int64_t byte_limit,
                                                  const string& id,
-                                                 const shared_ptr<MemTracker>& parent) {
-  shared_ptr<MemTracker> real_parent = parent ? parent : GetRootTracker();
+                                                 shared_ptr<MemTracker> parent) {
+  shared_ptr<MemTracker> real_parent;
+  if (parent) {
+    real_parent = std::move(parent);
+  } else {
+    real_parent = GetRootTracker();
+  }
   shared_ptr<MemTracker> tracker(new MemTracker(byte_limit, id, real_parent));
   real_parent->AddChildTracker(tracker);
   tracker->Init();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/mem_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/mem_tracker.h b/src/kudu/util/mem_tracker.h
index ed06dc0..14db374 100644
--- a/src/kudu/util/mem_tracker.h
+++ b/src/kudu/util/mem_tracker.h
@@ -69,7 +69,7 @@ class MemTracker : public std::enable_shared_from_this<MemTracker> {
   static std::shared_ptr<MemTracker> CreateTracker(
       int64_t byte_limit,
       const std::string& id,
-      const std::shared_ptr<MemTracker>& parent = std::shared_ptr<MemTracker>());
+      std::shared_ptr<MemTracker> parent = std::shared_ptr<MemTracker>());
 
   // If a tracker with the specified 'id' and 'parent' exists in the tree, sets
   // 'tracker' to reference that instance. Returns false if no such tracker

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/metrics.cc b/src/kudu/util/metrics.cc
index 4e6afa9..bc73d08 100644
--- a/src/kudu/util/metrics.cc
+++ b/src/kudu/util/metrics.cc
@@ -353,7 +353,7 @@ Status MetricRegistry::WriteAsJson(JsonWriter* writer,
   }
 
   writer->StartArray();
-  for (const EntityMap::value_type e : entities) {
+  for (const auto& e : entities) {
     WARN_NOT_OK(e.second->WriteAsJson(writer, requested_metrics, opts),
                 Substitute("Failed to write entity $0 as JSON", e.second->id()));
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/net/dns_resolver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/dns_resolver.cc b/src/kudu/util/net/dns_resolver.cc
index 8031c10..4803688 100644
--- a/src/kudu/util/net/dns_resolver.cc
+++ b/src/kudu/util/net/dns_resolver.cc
@@ -47,8 +47,8 @@ DnsResolver::~DnsResolver() {
 }
 
 namespace {
-static void DoResolution(const HostPort &hostport, vector<Sockaddr>* addresses,
-                         StatusCallback cb) {
+void DoResolution(const HostPort &hostport, vector<Sockaddr>* addresses,
+                  const StatusCallback& cb) {
   cb.Run(hostport.ResolveAddresses(addresses));
 }
 } // anonymous namespace

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/net/socket.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/socket.cc b/src/kudu/util/net/socket.cc
index dd420b2..5ea1b70 100644
--- a/src/kudu/util/net/socket.cc
+++ b/src/kudu/util/net/socket.cc
@@ -580,7 +580,7 @@ Status Socket::BlockingRecv(uint8_t *buf, size_t amt, size_t *nread, const MonoT
   return Status::OK();
 }
 
-Status Socket::SetTimeout(int opt, std::string optname, const MonoDelta& timeout) {
+Status Socket::SetTimeout(int opt, const char* optname, const MonoDelta& timeout) {
   if (PREDICT_FALSE(timeout.ToNanoseconds() < 0)) {
     return Status::InvalidArgument("Timeout specified as negative to SetTimeout",
                                    timeout.ToString());
@@ -591,7 +591,7 @@ Status Socket::SetTimeout(int opt, std::string optname, const MonoDelta& timeout
   if (::setsockopt(fd_, SOL_SOCKET, opt, &tv, optlen) == -1) {
     int err = errno;
     return Status::NetworkError(
-        StringPrintf("Failed to set %s to %s", optname.c_str(), timeout.ToString().c_str()),
+        StringPrintf("Failed to set %s to %s", optname, timeout.ToString().c_str()),
         ErrnoToString(err), err);
   }
   return Status::OK();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/net/socket.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/socket.h b/src/kudu/util/net/socket.h
index 2abd334..0b1c83b 100644
--- a/src/kudu/util/net/socket.h
+++ b/src/kudu/util/net/socket.h
@@ -19,7 +19,6 @@
 
 #include <cstddef>
 #include <cstdint>
-#include <string>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"
@@ -153,7 +152,7 @@ class Socket {
 
  private:
   // Called internally from SetSend/RecvTimeout().
-  Status SetTimeout(int opt, std::string optname, const MonoDelta& timeout);
+  Status SetTimeout(int opt, const char* optname, const MonoDelta& timeout);
 
   // Called internally during socket setup.
   Status SetCloseOnExec();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/pb_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/pb_util.cc b/src/kudu/util/pb_util.cc
index 5c5764a..a943f68 100644
--- a/src/kudu/util/pb_util.cc
+++ b/src/kudu/util/pb_util.cc
@@ -656,6 +656,7 @@ Status WritablePBContainerFile::CreateNew(const Message& msg) {
     InlineEncodeFixed32(buf.data() + offset, header_checksum);
     offset += sizeof(uint32_t);
   }
+  DCHECK_EQ(offset, kHeaderLen);
 
   // Serialize the supplemental header.
   ContainerSupHeaderPB sup_header;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/util/status-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/status-test.cc b/src/kudu/util/status-test.cc
index d4c5b54..a0aef3d 100644
--- a/src/kudu/util/status-test.cc
+++ b/src/kudu/util/status-test.cc
@@ -52,7 +52,7 @@ TEST(StatusTest, TestMoveConstructor) {
   {
     Status src = Status::OK();
     Status dst = std::move(src);
-    ASSERT_OK(src); // NOLINT(misc-use-after-move)
+    ASSERT_OK(src); // NOLINT(bugprone-use-after-move)
     ASSERT_OK(dst);
   }
 
@@ -61,7 +61,7 @@ TEST(StatusTest, TestMoveConstructor) {
   {
     Status src = Status::NotFound("foo");
     Status dst = std::move(src);
-    ASSERT_OK(src); // NOLINT(misc-use-after-move)
+    ASSERT_OK(src); // NOLINT(bugprone-use-after-move)
     ASSERT_EQ("Not found: foo", dst.ToString());
   }
 }
@@ -73,7 +73,7 @@ TEST(StatusTest, TestMoveAssignment) {
     Status src = Status::OK();
     Status dst = Status::NotFound("orig dst");
     dst = std::move(src);
-    ASSERT_OK(src); // NOLINT(misc-use-after-move)
+    ASSERT_OK(src); // NOLINT(bugprone-use-after-move)
     ASSERT_OK(dst);
   }
 
@@ -82,7 +82,7 @@ TEST(StatusTest, TestMoveAssignment) {
     Status src = Status::NotFound("orig src");
     Status dst = Status::NotFound("orig dst");
     dst = std::move(src);
-    ASSERT_OK(src); // NOLINT(misc-use-after-move)
+    ASSERT_OK(src); // NOLINT(bugprone-use-after-move)
     ASSERT_EQ("Not found: orig src", dst.ToString());
   }
 
@@ -91,7 +91,7 @@ TEST(StatusTest, TestMoveAssignment) {
     Status src = Status::NotFound("orig src");
     Status dst = Status::OK();
     dst = std::move(src);
-    ASSERT_OK(src); // NOLINT(misc-use-after-move)
+    ASSERT_OK(src); // NOLINT(bugprone-use-after-move)
     ASSERT_EQ("Not found: orig src", dst.ToString());
   }
 }


[3/3] kudu git commit: Various fixes for clang-tidy errors

Posted by gr...@apache.org.
Various fixes for clang-tidy errors

This updates the clang-tidy config to enable a few new checks and rename a few
old ones which were renamed in clang. I also ran through a bunch of checks
and fixed them using the following command:

find ../../src/kudu/ -name \*.cc | \
  grep -v -- -test | \
  grep -v gutil | \
  xargs -P80 -I{} -n1 ../../thirdparty/clang-toolchain/bin/clang-tidy \
  -checks=-readability*,-llvm-include-order,-modernize-use-nullptr,-google-readability-*,-misc-unused-*,-performance-inefficient-vector-operation \
  -p . --extra-arg=-DCLANG_TIDY -quiet {}

The above generated mostly straight-forward issues.

Change-Id: I69e2e1be80ec68537df101a4f508b4f1cf6e1342
Reviewed-on: http://gerrit.cloudera.org:8080/9899
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/b69f288e
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/b69f288e
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/b69f288e

Branch: refs/heads/master
Commit: b69f288e9ee67df97cd16eb838425f82ff080762
Parents: 90c1e1c
Author: Todd Lipcon <to...@apache.org>
Authored: Mon Apr 2 18:00:00 2018 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Mon Apr 23 21:44:35 2018 +0000

----------------------------------------------------------------------
 src/kudu/.clang-tidy                            |   4 +-
 src/kudu/benchmarks/tpch/rpc_line_item_dao.cc   |   4 +-
 src/kudu/benchmarks/tpch/rpc_line_item_dao.h    |   4 +-
 src/kudu/benchmarks/tpch/tpch1.cc               |   3 +-
 src/kudu/benchmarks/tpch/tpch_real_world.cc     |   2 +-
 src/kudu/cfile/block_compression.cc             |   1 -
 src/kudu/cfile/cfile_writer.cc                  |   2 +-
 src/kudu/cfile/index-test.cc                    |   2 +-
 src/kudu/client/client.cc                       |   6 +-
 src/kudu/client/meta_cache.cc                   |   6 +-
 src/kudu/client/meta_cache.h                    |   4 +-
 src/kudu/client/scanner-internal.cc             |   4 +-
 src/kudu/client/scanner-internal.h              |   5 +-
 src/kudu/client/schema-internal.h               |   2 +-
 src/kudu/client/schema.cc                       |   6 +-
 src/kudu/client/schema.h                        |  13 +--
 src/kudu/codegen/row_projector.cc               |   4 +-
 src/kudu/codegen/row_projector.h                |   2 +-
 src/kudu/common/encoded_key-test.cc             |  14 +--
 src/kudu/common/generic_iterators-test.cc       |  12 +--
 src/kudu/common/partial_row-test.cc             |   6 +-
 src/kudu/common/partition.cc                    |   2 +-
 src/kudu/common/partition_pruner.cc             |   4 +-
 src/kudu/common/schema.h                        |  63 ++++++------
 src/kudu/common/types.h                         |   6 +-
 src/kudu/consensus/consensus_queue.cc           |   5 +-
 src/kudu/consensus/consensus_queue.h            |   2 +-
 src/kudu/consensus/log.cc                       |   4 +-
 src/kudu/consensus/log.h                        |   2 +-
 src/kudu/consensus/log_cache.cc                 |  12 +--
 src/kudu/consensus/log_cache.h                  |   6 +-
 src/kudu/consensus/peer_manager.cc              |   4 +-
 src/kudu/consensus/peer_manager.h               |   2 +-
 src/kudu/consensus/raft_consensus.cc            |  10 +-
 src/kudu/consensus/raft_consensus.h             |   4 +-
 src/kudu/experiments/merge-test.cc              |   1 +
 src/kudu/fs/log_block_manager.cc                |   6 +-
 src/kudu/gutil/port.h                           |   2 +-
 src/kudu/integration-tests/all_types-itest.cc   |   2 +-
 src/kudu/master/catalog_manager.cc              |  24 ++---
 src/kudu/master/catalog_manager.h               |   2 +-
 src/kudu/master/sys_catalog.cc                  |   1 +
 src/kudu/rpc/inbound_call.cc                    |   2 +-
 src/kudu/rpc/inbound_call.h                     |   2 +-
 src/kudu/rpc/periodic.cc                        |   2 +-
 src/kudu/rpc/protoc-gen-krpc.cc                 |   4 +-
 src/kudu/rpc/remote_method.cc                   |   5 +-
 src/kudu/rpc/remote_method.h                    |   2 +-
 src/kudu/rpc/result_tracker.cc                  |   2 +-
 src/kudu/rpc/result_tracker.h                   |   2 +-
 src/kudu/rpc/rpc_context.cc                     |   4 +-
 src/kudu/rpc/rpc_context.h                      |   2 +-
 src/kudu/rpc/service_pool.cc                    |   2 +-
 src/kudu/rpc/transfer.cc                        |  17 ++--
 src/kudu/security/cert.cc                       |   2 +-
 src/kudu/tablet/compaction_policy.cc            |   1 -
 src/kudu/tablet/delta_stats.cc                  |   3 +-
 src/kudu/tablet/lock_manager-test.cc            |   2 +-
 src/kudu/tablet/memrowset.cc                    |   9 +-
 src/kudu/tablet/mt-tablet-test.cc               |   2 +-
 src/kudu/tablet/rowset.cc                       |   2 +-
 src/kudu/tablet/rowset_info.cc                  |   2 +-
 src/kudu/tablet/tablet-harness.h                |   2 +-
 src/kudu/tablet/tablet-test-base.h              |  11 +-
 src/kudu/tablet/tablet.cc                       |  16 +--
 src/kudu/tablet/tablet.h                        |   8 +-
 src/kudu/tablet/tablet_bootstrap.cc             |  54 +++++-----
 src/kudu/tablet/tablet_bootstrap.h              |  12 +--
 .../tablet/transactions/transaction_driver.cc   |   4 +-
 .../tablet/transactions/transaction_tracker.cc  |   2 +-
 src/kudu/tools/ksck-test.cc                     | 100 +++++++++----------
 src/kudu/tools/ksck.cc                          |   4 +-
 src/kudu/tools/tool_action.cc                   |   2 +-
 src/kudu/tools/tool_action_cluster.cc           |   2 +-
 src/kudu/tools/tool_action_local_replica.cc     |   2 +-
 src/kudu/tools/tool_action_remote_replica.cc    |   8 +-
 .../tserver/tablet_copy_source_session-test.cc  |   4 +-
 src/kudu/tserver/tablet_copy_source_session.cc  |   4 +-
 src/kudu/tserver/tablet_copy_source_session.h   |   2 +-
 src/kudu/tserver/ts_tablet_manager.cc           |  11 +-
 src/kudu/util/curl_util.cc                      |   4 +-
 src/kudu/util/debug/trace_event_impl.cc         |   7 +-
 src/kudu/util/easy_json.cc                      |   7 +-
 src/kudu/util/easy_json.h                       |   2 +-
 src/kudu/util/hdr_histogram.cc                  |   4 +-
 src/kudu/util/hexdump.cc                        |   3 +
 src/kudu/util/inline_slice.h                    |   9 +-
 src/kudu/util/mem_tracker.cc                    |   9 +-
 src/kudu/util/mem_tracker.h                     |   2 +-
 src/kudu/util/metrics.cc                        |   2 +-
 src/kudu/util/net/dns_resolver.cc               |   4 +-
 src/kudu/util/net/socket.cc                     |   4 +-
 src/kudu/util/net/socket.h                      |   3 +-
 src/kudu/util/pb_util.cc                        |   1 +
 src/kudu/util/status-test.cc                    |  10 +-
 95 files changed, 344 insertions(+), 314 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/.clang-tidy
----------------------------------------------------------------------
diff --git a/src/kudu/.clang-tidy b/src/kudu/.clang-tidy
index 97f98f1..e4af41b 100644
--- a/src/kudu/.clang-tidy
+++ b/src/kudu/.clang-tidy
@@ -14,9 +14,11 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-Checks:          'clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-alpha*,-*,readability-*,-readability-braces-around-statements,llvm-include-order,misc-*,-modernize-*,performance-*,-readability-implicit-bool-cast,google-*,-google-readability-braces-around-statements,-readability-redundant-string-init,modernize-make-shared,modernize-shrink-to-fit,modernize-use-emplace,modernize-pass-by-value'
+Checks:          'clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-alpha*,-*,readability-*,-readability-braces-around-statements,llvm-include-order,misc-*,-modernize-*,performance-*,-readability-implicit-bool-conversion,google-*,-google-readability-braces-around-statements,-readability-redundant-string-init,modernize-make-shared,modernize-shrink-to-fit,modernize-use-emplace,modernize-pass-by-value,modernize-use-nullptr,bugprone-*,clang-analyzer-deadcode.DeadStores,hicpp-noexcept-move'
 HeaderFilterRegex: '.*,-*.pb.h'
 CheckOptions:
+  - key:             google-runtime-references.WhiteListTypes
+    value:           ev::io
   - key:             readability-identifier-naming.ClassCase
     value:           CamelCase
   - key:             readability-identifier-naming.EnumCase

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc b/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
index b575734..531ef1f 100644
--- a/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
+++ b/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
@@ -162,14 +162,14 @@ void RpcLineItemDAO::Init() {
                                   : KuduSession::AUTO_FLUSH_BACKGROUND));
 }
 
-void RpcLineItemDAO::WriteLine(boost::function<void(KuduPartialRow*)> f) {
+void RpcLineItemDAO::WriteLine(const boost::function<void(KuduPartialRow*)> &f) {
   gscoped_ptr<KuduInsert> insert(client_table_->NewInsert());
   f(insert->mutable_row());
   CHECK_OK(session_->Apply(insert.release()));
   HandleLine();
 }
 
-void RpcLineItemDAO::MutateLine(boost::function<void(KuduPartialRow*)> f) {
+void RpcLineItemDAO::MutateLine(const boost::function<void(KuduPartialRow*)> &f) {
   gscoped_ptr<KuduUpdate> update(client_table_->NewUpdate());
   f(update->mutable_row());
   CHECK_OK(session_->Apply(update.release()));

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/rpc_line_item_dao.h b/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
index 8fb2ad4..7f1275f 100644
--- a/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
+++ b/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
@@ -60,8 +60,8 @@ class RpcLineItemDAO {
                  std::vector<const KuduPartialRow*> tablet_splits = {});
   ~RpcLineItemDAO();
   void Init();
-  void WriteLine(boost::function<void(KuduPartialRow*)> f);
-  void MutateLine(boost::function<void(KuduPartialRow*)> f);
+  void WriteLine(const boost::function<void(KuduPartialRow*)>& f);
+  void MutateLine(const boost::function<void(KuduPartialRow*)>& f);
   void FinishWriting();
 
   // Deletes previous scanner if one is open.

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/benchmarks/tpch/tpch1.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/tpch1.cc b/src/kudu/benchmarks/tpch/tpch1.cc
index 2feb823..edd5da9 100644
--- a/src/kudu/benchmarks/tpch/tpch1.cc
+++ b/src/kudu/benchmarks/tpch/tpch1.cc
@@ -66,6 +66,7 @@
 #include <vector>
 
 #include <boost/bind.hpp>
+#include <boost/function.hpp>
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
@@ -271,7 +272,7 @@ int main(int argc, char **argv) {
 
   gscoped_ptr<kudu::RpcLineItemDAO> dao(new kudu::RpcLineItemDAO(
       master_address, FLAGS_table_name, FLAGS_tpch_max_batch_size,
-      /* timeout = */ 5000, kudu::RpcLineItemDAO::RANGE,
+      /* timeout_ms = */ 5000, kudu::RpcLineItemDAO::RANGE,
       /* num_buckets = */ 1));
   dao->Init();
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/benchmarks/tpch/tpch_real_world.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/tpch_real_world.cc b/src/kudu/benchmarks/tpch/tpch_real_world.cc
index 1a40872..f878229 100644
--- a/src/kudu/benchmarks/tpch/tpch_real_world.cc
+++ b/src/kudu/benchmarks/tpch/tpch_real_world.cc
@@ -432,7 +432,7 @@ Status TpchRealWorld::Run() {
 
   stop_threads_.Store(true);
 
-  for (scoped_refptr<kudu::Thread> thr : threads) {
+  for (const auto& thr : threads) {
     RETURN_NOT_OK(ThreadJoiner(thr.get()).Join());
   }
   return Status::OK();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/cfile/block_compression.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/block_compression.cc b/src/kudu/cfile/block_compression.cc
index aa342bb..e61cf5f 100644
--- a/src/kudu/cfile/block_compression.cc
+++ b/src/kudu/cfile/block_compression.cc
@@ -150,7 +150,6 @@ Status CompressedBlockDecoder::Init() {
   }
 
   uncompressed_size_ = DecodeFixed32(p);
-  p += 4;
 
   // In CFile v2, we ensure that compressed_size <= uncompressed_size,
   // though, as per the file format, if compressed_size == uncompressed_size,

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/cfile/cfile_writer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_writer.cc b/src/kudu/cfile/cfile_writer.cc
index c5373f5..32d7cc6 100644
--- a/src/kudu/cfile/cfile_writer.cc
+++ b/src/kudu/cfile/cfile_writer.cc
@@ -277,7 +277,7 @@ Status CFileWriter::FinishAndReleaseBlock(BlockCreationTransaction* transaction)
 void CFileWriter::AddMetadataPair(const Slice &key, const Slice &value) {
   CHECK_NE(state_, kWriterFinished);
 
-  unflushed_metadata_.push_back(make_pair(key.ToString(), value.ToString()));
+  unflushed_metadata_.emplace_back(key.ToString(), value.ToString());
 }
 
 string CFileWriter::GetMetaValueOrDie(Slice key) const {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/cfile/index-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index-test.cc b/src/kudu/cfile/index-test.cc
index 98b3a05..d1c9b03 100644
--- a/src/kudu/cfile/index-test.cc
+++ b/src/kudu/cfile/index-test.cc
@@ -40,7 +40,7 @@ namespace kudu {
 namespace cfile {
 
 Status SearchInReaderString(const IndexBlockReader &reader,
-                            std::string search_key,
+                            const std::string &search_key,
                             BlockPointer *ptr, Slice *match) {
 
   static faststring dst;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/client.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.cc b/src/kudu/client/client.cc
index 524d2a9..17e0abf 100644
--- a/src/kudu/client/client.cc
+++ b/src/kudu/client/client.cc
@@ -1480,7 +1480,8 @@ Status KuduScanner::NextBatch(KuduScanBatch* batch) {
                                data_->configuration().projection(),
                                data_->configuration().client_projection(),
                                data_->configuration().row_format_flags(),
-                               make_gscoped_ptr(data_->last_response_.release_data()));
+                               unique_ptr<RowwiseRowBlockPB>(
+                                   data_->last_response_.release_data()));
   }
 
   if (data_->last_response_.has_more_results()) {
@@ -1504,7 +1505,8 @@ Status KuduScanner::NextBatch(KuduScanBatch* batch) {
                                    data_->configuration().projection(),
                                    data_->configuration().client_projection(),
                                    data_->configuration().row_format_flags(),
-                                   make_gscoped_ptr(data_->last_response_.release_data()));
+                                   unique_ptr<RowwiseRowBlockPB>(
+                                       data_->last_response_.release_data()));
       }
 
       data_->scan_attempts_++;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/meta_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/meta_cache.cc b/src/kudu/client/meta_cache.cc
index 32f96b2..b2f8b3a 100644
--- a/src/kudu/client/meta_cache.cc
+++ b/src/kudu/client/meta_cache.cc
@@ -345,11 +345,11 @@ string MetaCacheEntry::DebugString(const KuduTable* table) const {
 }
 
 MetaCacheServerPicker::MetaCacheServerPicker(KuduClient* client,
-                                             const scoped_refptr<MetaCache>& meta_cache,
+                                             scoped_refptr<MetaCache> meta_cache,
                                              const KuduTable* table,
                                              RemoteTablet* const tablet)
     : client_(client),
-      meta_cache_(meta_cache),
+      meta_cache_(std::move(meta_cache)),
       table_(table),
       tablet_(tablet) {}
 
@@ -896,7 +896,7 @@ Status MetaCache::ProcessLookupResponse(const LookupRpc& rpc,
         UpdateTabletServer(replicas.ts_info());
       }
 
-      string tablet_id = tablet.tablet_id();
+      const string& tablet_id = tablet.tablet_id();
       scoped_refptr<RemoteTablet> remote = FindPtrOrNull(tablets_by_id_, tablet_id);
       if (remote.get() != nullptr) {
         // Partition should not have changed.

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/meta_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/meta_cache.h b/src/kudu/client/meta_cache.h
index fafd84b..5e9dd6d 100644
--- a/src/kudu/client/meta_cache.h
+++ b/src/kudu/client/meta_cache.h
@@ -136,9 +136,9 @@ typedef std::unordered_map<std::string, RemoteTabletServer*> TabletServerMap;
 class MetaCacheServerPicker : public rpc::ServerPicker<RemoteTabletServer> {
  public:
   MetaCacheServerPicker(KuduClient* client,
-                        const scoped_refptr<MetaCache>& meta_cache,
+                        scoped_refptr<MetaCache> meta_cache,
                         const KuduTable* table,
-                        RemoteTablet* const tablet);
+                        RemoteTablet* tablet);
 
   virtual ~MetaCacheServerPicker() {}
   void PickLeader(const ServerPickedCallback& callback, const MonoTime& deadline) override;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/scanner-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scanner-internal.cc b/src/kudu/client/scanner-internal.cc
index 376bde1..cbbc605 100644
--- a/src/kudu/client/scanner-internal.cc
+++ b/src/kudu/client/scanner-internal.cc
@@ -52,6 +52,7 @@ using google::protobuf::FieldDescriptor;
 using google::protobuf::Reflection;
 using std::set;
 using std::string;
+using std::unique_ptr;
 using std::vector;
 
 namespace kudu {
@@ -580,7 +581,7 @@ Status KuduScanBatch::Data::Reset(RpcController* controller,
                                   const Schema* projection,
                                   const KuduSchema* client_projection,
                                   uint64_t row_format_flags,
-                                  gscoped_ptr<RowwiseRowBlockPB> resp_data) {
+                                  unique_ptr<RowwiseRowBlockPB> resp_data) {
   CHECK(controller->finished());
   controller_.Swap(controller);
   projection_ = projection;
@@ -595,6 +596,7 @@ Status KuduScanBatch::Data::Reset(RpcController* controller,
 
   // There's new data. Swap it in and process it.
   resp_data_.Swap(resp_data.get());
+  resp_data.reset(); // no longer valid.
 
   // First, rewrite the relative addresses into absolute ones.
   if (PREDICT_FALSE(!resp_data_.has_rows_sidecar())) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/scanner-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scanner-internal.h b/src/kudu/client/scanner-internal.h
index 946f9ee..145c6f2 100644
--- a/src/kudu/client/scanner-internal.h
+++ b/src/kudu/client/scanner-internal.h
@@ -32,13 +32,12 @@
 #include "kudu/client/row_result.h"
 #include "kudu/client/scan_batch.h"
 #include "kudu/client/scan_configuration.h"
-#include "kudu/client/shared_ptr.h"
 #include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/common/partition_pruner.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.pb.h"
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -295,7 +294,7 @@ class KuduScanBatch::Data {
                const Schema* projection,
                const KuduSchema* client_projection,
                uint64_t row_format_flags,
-               gscoped_ptr<RowwiseRowBlockPB> resp_data);
+               std::unique_ptr<RowwiseRowBlockPB> resp_data);
 
   int num_rows() const {
     return resp_data_.num_rows();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/schema-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema-internal.h b/src/kudu/client/schema-internal.h
index 769adec..10f6132 100644
--- a/src/kudu/client/schema-internal.h
+++ b/src/kudu/client/schema-internal.h
@@ -40,7 +40,7 @@ KuduColumnStorageAttributes::CompressionType FromInternalCompressionType(
 
 kudu::DataType ToInternalDataType(
     KuduColumnSchema::DataType type,
-    KuduColumnTypeAttributes attributes);
+    const KuduColumnTypeAttributes& attributes);
 KuduColumnSchema::DataType FromInternalDataType(kudu::DataType type);
 
 class KuduColumnTypeAttributes::Data {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/schema.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema.cc b/src/kudu/client/schema.cc
index 9d3e674..f250fd0 100644
--- a/src/kudu/client/schema.cc
+++ b/src/kudu/client/schema.cc
@@ -112,7 +112,7 @@ KuduColumnStorageAttributes::CompressionType FromInternalCompressionType(
 }
 
 kudu::DataType ToInternalDataType(KuduColumnSchema::DataType type,
-                                  KuduColumnTypeAttributes attributes) {
+                                  const KuduColumnTypeAttributes& attributes) {
   switch (type) {
     case KuduColumnSchema::INT8: return kudu::INT8;
     case KuduColumnSchema::INT16: return kudu::INT16;
@@ -590,8 +590,8 @@ KuduColumnSchema::KuduColumnSchema(const std::string &name,
                                    DataType type,
                                    bool is_nullable,
                                    const void* default_value,
-                                   KuduColumnStorageAttributes storage_attributes,
-                                   KuduColumnTypeAttributes type_attributes) {
+                                   const KuduColumnStorageAttributes& storage_attributes,
+                                   const KuduColumnTypeAttributes& type_attributes) {
   ColumnStorageAttributes attr_private;
   attr_private.encoding = ToInternalEncodingType(storage_attributes.encoding());
   attr_private.compression = ToInternalCompressionType(

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/client/schema.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema.h b/src/kudu/client/schema.h
index 6bc8241..4e46414 100644
--- a/src/kudu/client/schema.h
+++ b/src/kudu/client/schema.h
@@ -251,12 +251,13 @@ class KUDU_EXPORT KuduColumnSchema {
   KuduColumnSchema();
 
   /// This constructor is private because clients should use the Builder API.
-  KuduColumnSchema(const std::string &name,
-                   DataType type,
-                   bool is_nullable = false,
-                   const void* default_value = NULL,
-                   KuduColumnStorageAttributes storage_attributes = KuduColumnStorageAttributes(),
-                   KuduColumnTypeAttributes type_attributes = KuduColumnTypeAttributes());
+  KuduColumnSchema(
+      const std::string &name,
+      DataType type,
+      bool is_nullable = false,
+      const void* default_value = NULL, //NOLINT(modernize-use-nullptr)
+      const KuduColumnStorageAttributes& storage_attributes = KuduColumnStorageAttributes(),
+      const KuduColumnTypeAttributes& type_attributes = KuduColumnTypeAttributes());
 
   // Owned.
   ColumnSchema* col_;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/codegen/row_projector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/row_projector.cc b/src/kudu/codegen/row_projector.cc
index a785ab1..90670df 100644
--- a/src/kudu/codegen/row_projector.cc
+++ b/src/kudu/codegen/row_projector.cc
@@ -370,9 +370,9 @@ Status RowProjectorFunctions::EncodeKey(const Schema& base, const Schema& proj,
 }
 
 RowProjector::RowProjector(const Schema* base_schema, const Schema* projection,
-                           const scoped_refptr<RowProjectorFunctions>& functions)
+                           scoped_refptr<RowProjectorFunctions> functions)
   : projector_(base_schema, projection),
-    functions_(functions) {}
+    functions_(std::move(functions)) {}
 
 namespace {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/codegen/row_projector.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/row_projector.h b/src/kudu/codegen/row_projector.h
index f109a38..cc32775 100644
--- a/src/kudu/codegen/row_projector.h
+++ b/src/kudu/codegen/row_projector.h
@@ -96,7 +96,7 @@ class RowProjector {
   // object. Also requires that the schemas are compatible with
   // the schemas used to create 'functions'.
   RowProjector(const Schema* base_schema, const Schema* projection,
-               const scoped_refptr<RowProjectorFunctions>& code);
+               scoped_refptr<RowProjectorFunctions> functions);
 
   Status Init();
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/encoded_key-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/encoded_key-test.cc b/src/kudu/common/encoded_key-test.cc
index dd5f992..077b2f0 100644
--- a/src/kudu/common/encoded_key-test.cc
+++ b/src/kudu/common/encoded_key-test.cc
@@ -64,18 +64,18 @@ class EncodedKeyTest : public KuduTest {
     return Schema({ ColumnSchema("key", UINT32) }, 1);
   }
 
-  EncodedKey* BuildEncodedKey(EncodedKeyBuilder& key_builder, int val) {
-    key_builder.Reset();
-    key_builder.AddColumnKey(&val);
-    return key_builder.BuildEncodedKey();
+  EncodedKey* BuildEncodedKey(EncodedKeyBuilder* key_builder, int val) {
+    key_builder->Reset();
+    key_builder->AddColumnKey(&val);
+    return key_builder->BuildEncodedKey();
   }
 
   // Test whether target lies within the numerical key ranges given by
   // start and end. If -1, an empty slice is used instead.
   bool InRange(int start, int end, int target) {
-    gscoped_ptr<EncodedKey> start_key(BuildEncodedKey(key_builder_, start));
-    gscoped_ptr<EncodedKey> end_key(BuildEncodedKey(key_builder_, end));
-    gscoped_ptr<EncodedKey> target_key(BuildEncodedKey(key_builder_, target));
+    gscoped_ptr<EncodedKey> start_key(BuildEncodedKey(&key_builder_, start));
+    gscoped_ptr<EncodedKey> end_key(BuildEncodedKey(&key_builder_, end));
+    gscoped_ptr<EncodedKey> target_key(BuildEncodedKey(&key_builder_, target));
     return target_key->InRange(start != -1 ? start_key->encoded_key() : Slice(),
                                end != -1 ? end_key->encoded_key() : Slice());
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/generic_iterators-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/generic_iterators-test.cc b/src/kudu/common/generic_iterators-test.cc
index 55eaa09..8aec191 100644
--- a/src/kudu/common/generic_iterators-test.cc
+++ b/src/kudu/common/generic_iterators-test.cc
@@ -255,9 +255,9 @@ TEST(TestMaterializingIterator, TestMaterializingPredicatePushdown) {
   spec.AddPredicate(pred1.pred_);
   LOG(INFO) << "Predicate: " << pred1.pred_.ToString();
 
-  vector<uint32_t> ints;
+  vector<uint32_t> ints(100);
   for (int i = 0; i < 100; i++) {
-    ints.push_back(i);
+    ints[i] = i;
   }
 
   shared_ptr<VectorIterator> colwise(new VectorIterator(ints));
@@ -286,9 +286,9 @@ TEST(TestPredicateEvaluatingIterator, TestPredicateEvaluation) {
   spec.AddPredicate(pred1.pred_);
   LOG(INFO) << "Predicate: " << pred1.pred_.ToString();
 
-  vector<uint32_t> ints;
+  vector<uint32_t> ints(100);
   for (int i = 0; i < 100; i++) {
-    ints.push_back(i);
+    ints[i] = i;
   }
 
   // Set up a MaterializingIterator with pushdown disabled, so that the
@@ -343,8 +343,8 @@ TEST(TestPredicateEvaluatingIterator, TestDontWrapWhenNoPredicates) {
 class DummyIterator : public RowwiseIterator {
  public:
 
-  explicit DummyIterator(Schema schema)
-      : schema_(std::move(schema)) {
+  explicit DummyIterator(const Schema& schema)
+      : schema_(schema) {
   }
 
   Status Init(ScanSpec* /*spec*/) override {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/partial_row-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partial_row-test.cc b/src/kudu/common/partial_row-test.cc
index 07d8658..20f1d1e 100644
--- a/src/kudu/common/partial_row-test.cc
+++ b/src/kudu/common/partial_row-test.cc
@@ -71,8 +71,8 @@ class PartialRowTest : public KuduTest {
   // Utility method to perform checks on copy/no-copy behavior of the
   // PartialRow::Set{Binary,String}{,Copy,NoCopy}() methods.
   void BinaryDataSetterTest(
-      std::function<Status(const KuduPartialRow&, int, Slice*)> getter,
-      std::function<Status(KuduPartialRow&, int, const Slice&)> setter,
+      const std::function<Status(const KuduPartialRow&, int, Slice*)>& getter,
+      const std::function<Status(KuduPartialRow&, int, const Slice&)>& setter,
       int column_idx, CopyBehavior copy_behavior) {
 
     KuduPartialRow row(&schema_);
@@ -102,7 +102,7 @@ class PartialRowTest : public KuduTest {
     }
 
     // Additional, more high-level check.
-    src_data.replace(0, src_data.find("-"), "new");
+    src_data.replace(0, src_data.find('-'), "new");
     ASSERT_EQ("new-data", src_data);
 
     switch (copy_behavior) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/partition.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition.cc b/src/kudu/common/partition.cc
index 0fd8850..616b75d 100644
--- a/src/kudu/common/partition.cc
+++ b/src/kudu/common/partition.cc
@@ -116,7 +116,7 @@ Status ExtractColumnIds(const RepeatedPtrField<PartitionSchemaPB_ColumnIdentifie
                         const Schema& schema,
                         vector<ColumnId>* column_ids) {
     column_ids->reserve(identifiers.size());
-    for (PartitionSchemaPB_ColumnIdentifierPB identifier : identifiers) {
+    for (const auto& identifier : identifiers) {
       switch (identifier.identifier_case()) {
         case PartitionSchemaPB_ColumnIdentifierPB::kId: {
           ColumnId column_id(identifier.id());

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/partition_pruner.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition_pruner.cc b/src/kudu/common/partition_pruner.cc
index c5e3b6a..c96e0bb 100644
--- a/src/kudu/common/partition_pruner.cc
+++ b/src/kudu/common/partition_pruner.cc
@@ -160,7 +160,7 @@ void EncodeRangeKeysFromPredicates(const Schema& schema,
   // Find the column indexes of the range columns.
   vector<int32_t> col_idxs;
   col_idxs.reserve(range_columns.size());
-  for (ColumnId column : range_columns) {
+  for (const auto& column : range_columns) {
     int32_t col_idx = schema.find_column_by_id(column);
     CHECK(col_idx != Schema::kColumnNotFound);
     CHECK(col_idx < schema.num_key_columns());
@@ -393,7 +393,7 @@ void PartitionPruner::Init(const Schema& schema,
         string upper = get<1>(partition_key_range);
         hash_encoder.Encode(&bucket, &lower);
         hash_encoder.Encode(&bucket_upper, &upper);
-        new_partition_key_ranges.push_back(make_tuple(move(lower), move(upper)));
+        new_partition_key_ranges.emplace_back(move(lower), move(upper));
       }
     }
     partition_key_ranges.swap(new_partition_key_ranges);

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/schema.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/schema.h b/src/kudu/common/schema.h
index 2fd76d0..b5e2003 100644
--- a/src/kudu/common/schema.h
+++ b/src/kudu/common/schema.h
@@ -67,21 +67,22 @@ class Arena;
 
 // The ID of a column. Each column in a table has a unique ID.
 struct ColumnId {
-  explicit ColumnId(int32_t t_) : t(t_) {}
-  ColumnId() : t() {}
-  ColumnId(const ColumnId& t_) : t(t_.t) {}
-  ColumnId& operator=(const ColumnId& rhs) { t = rhs.t; return *this; }
-  ColumnId& operator=(const int32_t& rhs) { t = rhs; return *this; }
-  operator const int32_t() const { return t; }
-  operator const strings::internal::SubstituteArg() const { return t; }
-  operator const AlphaNum() const { return t; }
-  bool operator==(const ColumnId & rhs) const { return t == rhs.t; }
-  bool operator<(const ColumnId & rhs) const { return t < rhs.t; }
+  explicit ColumnId(int32_t t) : t_(t) {}
+  ColumnId() = default;
+  ColumnId(const ColumnId& o) = default;
+
+  ColumnId& operator=(const ColumnId& rhs) { t_ = rhs.t_; return *this; }
+  ColumnId& operator=(const int32_t& rhs) { t_ = rhs; return *this; }
+  operator const int32_t() const { return t_; } // NOLINT
+  operator const strings::internal::SubstituteArg() const { return t_; } // NOLINT
+  operator const AlphaNum() const { return t_; } // NOLINT
+  bool operator==(const ColumnId & rhs) const { return t_ == rhs.t_; }
+  bool operator<(const ColumnId & rhs) const { return t_ < rhs.t_; }
   friend std::ostream& operator<<(std::ostream& os, ColumnId column_id) {
-    return os << column_id.t;
+    return os << column_id.t_;
   }
  private:
-  int32_t t;
+  int32_t t_;
 };
 
 // Class for storing column attributes such as precision and scale
@@ -198,19 +199,19 @@ class ColumnSchema {
   //   Slice default_str("Hello");
   //   ColumnSchema col_d("d", STRING, false, &default_str);
   ColumnSchema(std::string name, DataType type, bool is_nullable = false,
-               const void* read_default = NULL,
-               const void* write_default = NULL,
+               const void* read_default = nullptr,
+               const void* write_default = nullptr,
                ColumnStorageAttributes attributes = ColumnStorageAttributes(),
                ColumnTypeAttributes type_attributes = ColumnTypeAttributes())
       : name_(std::move(name)),
         type_info_(GetTypeInfo(type)),
         is_nullable_(is_nullable),
-        read_default_(read_default ? new Variant(type, read_default) : NULL),
+        read_default_(read_default ? new Variant(type, read_default) : nullptr),
         attributes_(attributes),
         type_attributes_(type_attributes) {
     if (write_default == read_default) {
       write_default_ = read_default_;
-    } else if (write_default != NULL) {
+    } else if (write_default != nullptr) {
       write_default_.reset(new Variant(type, write_default));
     }
   }
@@ -237,40 +238,40 @@ class ColumnSchema {
 
   // Returns true if the column has a read default value
   bool has_read_default() const {
-    return read_default_ != NULL;
+    return read_default_ != nullptr;
   }
 
   // Returns a pointer the default value associated with the column
-  // or NULL if there is no default value. You may check has_read_default() first.
+  // or nullptr if there is no default value. You may check has_read_default() first.
   // The returned value will be valid until the ColumnSchema will be destroyed.
   //
   // Example:
   //    const uint32_t *vu32 = static_cast<const uint32_t *>(col_schema.read_default_value());
   //    const Slice *vstr = static_cast<const Slice *>(col_schema.read_default_value());
   const void *read_default_value() const {
-    if (read_default_ != NULL) {
+    if (read_default_ != nullptr) {
       return read_default_->value();
     }
-    return NULL;
+    return nullptr;
   }
 
   // Returns true if the column has a write default value
   bool has_write_default() const {
-    return write_default_ != NULL;
+    return write_default_ != nullptr;
   }
 
   // Returns a pointer the default value associated with the column
-  // or NULL if there is no default value. You may check has_write_default() first.
+  // or nullptr if there is no default value. You may check has_write_default() first.
   // The returned value will be valid until the ColumnSchema will be destroyed.
   //
   // Example:
   //    const uint32_t *vu32 = static_cast<const uint32_t *>(col_schema.write_default_value());
   //    const Slice *vstr = static_cast<const Slice *>(col_schema.write_default_value());
   const void *write_default_value() const {
-    if (write_default_ != NULL) {
+    if (write_default_ != nullptr) {
       return write_default_->value();
     }
-    return NULL;
+    return nullptr;
   }
 
   bool EqualsPhysicalType(const ColumnSchema& other) const {
@@ -309,16 +310,16 @@ class ColumnSchema {
     // since we don't support them, for server vs user schema this comparison
     // will always fail, since the user does not specify the defaults.
     if (flags & COMPARE_DEFAULTS) {
-      if (read_default_ == NULL && other.read_default_ != NULL)
+      if (read_default_ == nullptr && other.read_default_ != nullptr)
         return false;
 
-      if (write_default_ == NULL && other.write_default_ != NULL)
+      if (write_default_ == nullptr && other.write_default_ != nullptr)
         return false;
 
-      if (read_default_ != NULL && !read_default_->Equals(other.read_default_.get()))
+      if (read_default_ != nullptr && !read_default_->Equals(other.read_default_.get()))
         return false;
 
-      if (write_default_ != NULL && !write_default_->Equals(other.write_default_.get()))
+      if (write_default_ != nullptr && !write_default_->Equals(other.write_default_.get()))
         return false;
     }
     return true;
@@ -422,6 +423,8 @@ class Schema {
   Schema(const Schema& other);
   Schema& operator=(const Schema& other);
 
+  // TODO(todd) implement a move constructor
+
   void swap(Schema& other); // NOLINT(build/include_what_you_use)
 
   void CopyFrom(const Schema& other);
@@ -957,11 +960,11 @@ class SchemaBuilder {
   Status AddColumn(const ColumnSchema& column, bool is_key);
 
   Status AddColumn(const std::string& name, DataType type) {
-    return AddColumn(name, type, false, NULL, NULL);
+    return AddColumn(name, type, false, nullptr, nullptr);
   }
 
   Status AddNullableColumn(const std::string& name, DataType type) {
-    return AddColumn(name, type, true, NULL, NULL);
+    return AddColumn(name, type, true, nullptr, nullptr);
   }
 
   Status AddColumn(const std::string& name,

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/common/types.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/types.h b/src/kudu/common/types.h
index 7b7aca3..20401f7 100644
--- a/src/kudu/common/types.h
+++ b/src/kudu/common/types.h
@@ -107,11 +107,11 @@ static int GenericCompare(const void *lhs, const void *rhs) {
   CppType rhs_int = UnalignedLoad<CppType>(rhs);
   if (lhs_int < rhs_int) {
     return -1;
-  } else if (lhs_int > rhs_int) {
+  }
+  if (lhs_int > rhs_int) {
     return 1;
-  } else {
-    return 0;
   }
+  return 0;
 }
 
 template<DataType Type>

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/consensus_queue.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_queue.cc b/src/kudu/consensus/consensus_queue.cc
index 8b6f397..343a591 100644
--- a/src/kudu/consensus/consensus_queue.cc
+++ b/src/kudu/consensus/consensus_queue.cc
@@ -34,6 +34,7 @@
 #include "kudu/common/common.pb.h"
 #include "kudu/common/timestamp.h"
 #include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/log.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
 #include "kudu/consensus/time_manager.h"
@@ -148,7 +149,7 @@ PeerMessageQueue::Metrics::Metrics(const scoped_refptr<MetricEntity>& metric_ent
 }
 #undef INSTANTIATE_METRIC
 
-PeerMessageQueue::PeerMessageQueue(scoped_refptr<MetricEntity> metric_entity,
+PeerMessageQueue::PeerMessageQueue(const scoped_refptr<MetricEntity>& metric_entity,
                                    scoped_refptr<log::Log> log,
                                    scoped_refptr<TimeManager> time_manager,
                                    RaftPeerPB local_peer_pb,
@@ -159,7 +160,7 @@ PeerMessageQueue::PeerMessageQueue(scoped_refptr<MetricEntity> metric_entity,
     : raft_pool_observers_token_(std::move(raft_pool_observers_token)),
       local_peer_pb_(std::move(local_peer_pb)),
       tablet_id_(std::move(tablet_id)),
-      log_cache_(metric_entity, log, local_peer_pb_.permanent_uuid(), tablet_id_),
+      log_cache_(metric_entity, std::move(log), local_peer_pb_.permanent_uuid(), tablet_id_),
       metrics_(metric_entity),
       time_manager_(std::move(time_manager)) {
   DCHECK(local_peer_pb_.has_permanent_uuid());

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/consensus_queue.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_queue.h b/src/kudu/consensus/consensus_queue.h
index a2b79e2..27e52e1 100644
--- a/src/kudu/consensus/consensus_queue.h
+++ b/src/kudu/consensus/consensus_queue.h
@@ -182,7 +182,7 @@ class PeerMessageQueue {
     int64_t last_seen_term_;
   };
 
-  PeerMessageQueue(scoped_refptr<MetricEntity> metric_entity,
+  PeerMessageQueue(const scoped_refptr<MetricEntity>& metric_entity,
                    scoped_refptr<log::Log> log,
                    scoped_refptr<TimeManager> time_manager,
                    RaftPeerPB local_peer_pb,

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/log.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log.cc b/src/kudu/consensus/log.cc
index 5d82ebc..12898b9 100644
--- a/src/kudu/consensus/log.cc
+++ b/src/kudu/consensus/log.cc
@@ -455,7 +455,7 @@ Status Log::Open(const LogOptions &options,
 
 Log::Log(LogOptions options, FsManager* fs_manager, string log_path,
          string tablet_id, const Schema& schema, uint32_t schema_version,
-         const scoped_refptr<MetricEntity>& metric_entity)
+         scoped_refptr<MetricEntity> metric_entity)
     : options_(options),
       fs_manager_(fs_manager),
       log_dir_(std::move(log_path)),
@@ -471,7 +471,7 @@ Log::Log(LogOptions options, FsManager* fs_manager, string log_path,
       sync_disabled_(false),
       allocation_state_(kAllocationNotStarted),
       codec_(nullptr),
-      metric_entity_(metric_entity),
+      metric_entity_(std::move(metric_entity)),
       on_disk_size_(0) {
   CHECK_OK(ThreadPoolBuilder("log-alloc").set_max_threads(1).Build(&allocation_pool_));
   if (metric_entity_) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/log.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log.h b/src/kudu/consensus/log.h
index 73138e2..f10c5e3 100644
--- a/src/kudu/consensus/log.h
+++ b/src/kudu/consensus/log.h
@@ -261,7 +261,7 @@ class Log : public RefCountedThreadSafe<Log> {
 
   Log(LogOptions options, FsManager* fs_manager, std::string log_path,
       std::string tablet_id, const Schema& schema, uint32_t schema_version,
-      const scoped_refptr<MetricEntity>& metric_entity);
+      scoped_refptr<MetricEntity> metric_entity);
 
   // Initializes a new one or continues an existing log.
   Status Init();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/log_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_cache.cc b/src/kudu/consensus/log_cache.cc
index 4002133..4d0c73d 100644
--- a/src/kudu/consensus/log_cache.cc
+++ b/src/kudu/consensus/log_cache.cc
@@ -80,12 +80,12 @@ static const char kParentMemTrackerId[] = "log_cache";
 typedef vector<const ReplicateMsg*>::const_iterator MsgIter;
 
 LogCache::LogCache(const scoped_refptr<MetricEntity>& metric_entity,
-                   const scoped_refptr<log::Log>& log,
-                   const string& local_uuid,
-                   const string& tablet_id)
-  : log_(log),
-    local_uuid_(local_uuid),
-    tablet_id_(tablet_id),
+                   scoped_refptr<log::Log> log,
+                   string local_uuid,
+                   string tablet_id)
+  : log_(std::move(log)),
+    local_uuid_(std::move(local_uuid)),
+    tablet_id_(std::move(tablet_id)),
     next_sequential_op_index_(0),
     min_pinned_op_index_(0),
     metrics_(metric_entity) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/log_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_cache.h b/src/kudu/consensus/log_cache.h
index 4daf518..33eb37c 100644
--- a/src/kudu/consensus/log_cache.h
+++ b/src/kudu/consensus/log_cache.h
@@ -55,9 +55,9 @@ class OpId;
 class LogCache {
  public:
   LogCache(const scoped_refptr<MetricEntity>& metric_entity,
-           const scoped_refptr<log::Log>& log,
-           const std::string& local_uuid,
-           const std::string& tablet_id);
+           scoped_refptr<log::Log> log,
+           std::string local_uuid,
+           std::string tablet_id);
   ~LogCache();
 
   // Initialize the cache.

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/peer_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/peer_manager.cc b/src/kudu/consensus/peer_manager.cc
index 2892c18..134bc3a 100644
--- a/src/kudu/consensus/peer_manager.cc
+++ b/src/kudu/consensus/peer_manager.cc
@@ -46,13 +46,13 @@ PeerManager::PeerManager(std::string tablet_id,
                          PeerProxyFactory* peer_proxy_factory,
                          PeerMessageQueue* queue,
                          ThreadPoolToken* raft_pool_token,
-                         const scoped_refptr<log::Log>& log)
+                         scoped_refptr<log::Log> log)
     : tablet_id_(std::move(tablet_id)),
       local_uuid_(std::move(local_uuid)),
       peer_proxy_factory_(peer_proxy_factory),
       queue_(queue),
       raft_pool_token_(raft_pool_token),
-      log_(log) {
+      log_(std::move(log)) {
 }
 
 PeerManager::~PeerManager() {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/peer_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/peer_manager.h b/src/kudu/consensus/peer_manager.h
index 6b7058a..bfde816 100644
--- a/src/kudu/consensus/peer_manager.h
+++ b/src/kudu/consensus/peer_manager.h
@@ -52,7 +52,7 @@ class PeerManager {
               PeerProxyFactory* peer_proxy_factory,
               PeerMessageQueue* queue,
               ThreadPoolToken* raft_pool_token,
-              const scoped_refptr<log::Log>& log);
+              scoped_refptr<log::Log> log);
 
   ~PeerManager();
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/raft_consensus.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/raft_consensus.cc b/src/kudu/consensus/raft_consensus.cc
index 027a64c..f60714a 100644
--- a/src/kudu/consensus/raft_consensus.cc
+++ b/src/kudu/consensus/raft_consensus.cc
@@ -214,7 +214,7 @@ Status RaftConsensus::Start(const ConsensusBootstrapInfo& info,
                             scoped_refptr<log::Log> log,
                             scoped_refptr<TimeManager> time_manager,
                             ReplicaTransactionFactory* txn_factory,
-                            scoped_refptr<MetricEntity> metric_entity,
+                            const scoped_refptr<MetricEntity>& metric_entity,
                             Callback<void(const std::string& reason)> mark_dirty_clbk) {
   DCHECK(metric_entity);
 
@@ -244,7 +244,7 @@ Status RaftConsensus::Start(const ConsensusBootstrapInfo& info,
   // TODO(adar): the token is SERIAL to match the previous single-thread
   // observer pool behavior, but CONCURRENT may be safe here.
   unique_ptr<PeerMessageQueue> queue(new PeerMessageQueue(
-      std::move(metric_entity),
+      metric_entity,
       log_,
       time_manager_,
       local_peer_pb_,
@@ -1844,7 +1844,7 @@ Status RaftConsensus::BulkChangeConfig(const BulkChangeConfigRequestPB& req,
     new_config.clear_opid_index();
 
     RETURN_NOT_OK(ReplicateConfigChangeUnlocked(
-        std::move(committed_config), std::move(new_config), std::bind(
+        committed_config, std::move(new_config), std::bind(
             &RaftConsensus::MarkDirtyOnSuccess,
             this,
             string("Config change replication complete"),
@@ -2991,9 +2991,9 @@ ConsensusRound::ConsensusRound(RaftConsensus* consensus,
       bound_term_(-1) {}
 
 ConsensusRound::ConsensusRound(RaftConsensus* consensus,
-                               const ReplicateRefPtr& replicate_msg)
+                               ReplicateRefPtr replicate_msg)
     : consensus_(consensus),
-      replicate_msg_(replicate_msg),
+      replicate_msg_(std::move(replicate_msg)),
       bound_term_(-1) {
   DCHECK(replicate_msg_);
 }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/consensus/raft_consensus.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/raft_consensus.h b/src/kudu/consensus/raft_consensus.h
index 7f56a7a..6db6774 100644
--- a/src/kudu/consensus/raft_consensus.h
+++ b/src/kudu/consensus/raft_consensus.h
@@ -140,7 +140,7 @@ class RaftConsensus : public std::enable_shared_from_this<RaftConsensus>,
                scoped_refptr<log::Log> log,
                scoped_refptr<TimeManager> time_manager,
                ReplicaTransactionFactory* txn_factory,
-               scoped_refptr<MetricEntity> metric_entity,
+               const scoped_refptr<MetricEntity>& metric_entity,
                Callback<void(const std::string& reason)> mark_dirty_clbk);
 
   // Returns true if RaftConsensus is running.
@@ -927,7 +927,7 @@ class ConsensusRound : public RefCountedThreadSafe<ConsensusRound> {
   // replicate callback and the commit callback is set later, after the transaction
   // is actually started.
   ConsensusRound(RaftConsensus* consensus,
-                 const ReplicateRefPtr& replicate_msg);
+                 ReplicateRefPtr replicate_msg);
 
   ReplicateMsg* replicate_msg() {
     return replicate_msg_->get();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/experiments/merge-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/experiments/merge-test.cc b/src/kudu/experiments/merge-test.cc
index 8e10f09..3f1f736 100644
--- a/src/kudu/experiments/merge-test.cc
+++ b/src/kudu/experiments/merge-test.cc
@@ -82,6 +82,7 @@ void SimpleMerge(const vector<vector<MergeType> > &in_lists,
                  vector<MergeType> *out) {
   typedef vector<MergeType>::const_iterator MergeTypeIter;
   vector<MergeTypeIter> iters;
+  iters.reserve(in_lists.size());
   for (const vector<MergeType> &list : in_lists) {
     iters.push_back(list.begin());
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/fs/log_block_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/log_block_manager.cc b/src/kudu/fs/log_block_manager.cc
index 4277c12..7fb63e4 100644
--- a/src/kudu/fs/log_block_manager.cc
+++ b/src/kudu/fs/log_block_manager.cc
@@ -1549,7 +1549,7 @@ Status LogWritableBlock::AppendMetadata() {
 class LogReadableBlock : public ReadableBlock {
  public:
   LogReadableBlock(LogBlockContainer* container,
-                   const scoped_refptr<LogBlock>& log_block);
+                   scoped_refptr<LogBlock> log_block);
 
   virtual ~LogReadableBlock();
 
@@ -1580,9 +1580,9 @@ class LogReadableBlock : public ReadableBlock {
 };
 
 LogReadableBlock::LogReadableBlock(LogBlockContainer* container,
-                                   const scoped_refptr<LogBlock>& log_block)
+                                   scoped_refptr<LogBlock> log_block)
   : container_(container),
-    log_block_(log_block),
+    log_block_(std::move(log_block)),
     closed_(false) {
   if (container_->metrics()) {
     container_->metrics()->generic_metrics.blocks_open_reading->Increment();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/gutil/port.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/port.h b/src/kudu/gutil/port.h
index 49881f1..0cf416e 100644
--- a/src/kudu/gutil/port.h
+++ b/src/kudu/gutil/port.h
@@ -9,8 +9,8 @@
 #define BASE_PORT_H_
 
 #include <limits.h>         // So we can set the bounds of our types
-#include <string.h>         // for memcpy()
 #include <stdlib.h>         // for free()
+#include <string.h>         // for memcpy()
 
 #if defined(__APPLE__)
 #include <unistd.h>         // for getpagesize() on mac

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/integration-tests/all_types-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/all_types-itest.cc b/src/kudu/integration-tests/all_types-itest.cc
index 840b32f..e4e9575 100644
--- a/src/kudu/integration-tests/all_types-itest.cc
+++ b/src/kudu/integration-tests/all_types-itest.cc
@@ -16,8 +16,8 @@
 // under the License.
 
 #include <algorithm>
-#include <functional>
 #include <cstdint>
+#include <functional>
 #include <ostream>
 #include <string>
 #include <vector>

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/master/catalog_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/catalog_manager.cc b/src/kudu/master/catalog_manager.cc
index 1c2eefd..bf87e4f 100644
--- a/src/kudu/master/catalog_manager.cc
+++ b/src/kudu/master/catalog_manager.cc
@@ -592,7 +592,7 @@ string RequestorString(RpcContext* rpc) {
 // Service::UnavailableError as the error, set NOT_THE_LEADER as the
 // error code and return true.
 template<class RespClass>
-void CheckIfNoLongerLeaderAndSetupError(Status s, RespClass* resp) {
+void CheckIfNoLongerLeaderAndSetupError(const Status& s, RespClass* resp) {
   // TODO (KUDU-591): This is a bit of a hack, as right now
   // there's no way to propagate why a write to a consensus configuration has
   // failed. However, since we use Status::IllegalState()/IsAborted() to
@@ -1074,7 +1074,7 @@ Status CatalogManager::PrepareFollower(MonoTime* last_tspk_run) {
   // Import keys for authn token verification. A new TSK appear every
   // tsk_rotation_seconds, so using 1/2 of that interval to avoid edge cases.
   const auto tsk_rotation_interval =
-      MonoDelta::FromSeconds(FLAGS_tsk_rotation_seconds / 2);
+      MonoDelta::FromSeconds(FLAGS_tsk_rotation_seconds / 2.0);
   const auto now = MonoTime::Now();
   if (!last_tspk_run->Initialized() || *last_tspk_run + tsk_rotation_interval < now) {
     RETURN_NOT_OK(PrepareFollowerTokenVerifier());
@@ -2609,8 +2609,8 @@ class PickSpecificUUID : public TSPicker {
 // and sends the RPC to that server.
 class PickLeaderReplica : public TSPicker {
  public:
-  explicit PickLeaderReplica(const scoped_refptr<TabletInfo>& tablet) :
-    tablet_(tablet) {
+  explicit PickLeaderReplica(scoped_refptr<TabletInfo> tablet) :
+      tablet_(std::move(tablet)) {
   }
 
   Status PickReplica(string* ts_uuid) override {
@@ -2644,10 +2644,10 @@ class RetryingTSRpcTask : public MonitoredTask {
  public:
   RetryingTSRpcTask(Master *master,
                     gscoped_ptr<TSPicker> replica_picker,
-                    const scoped_refptr<TableInfo>& table)
+                    scoped_refptr<TableInfo> table)
     : master_(master),
       replica_picker_(std::move(replica_picker)),
-      table_(table),
+      table_(std::move(table)),
       start_ts_(MonoTime::Now()),
       deadline_(start_ts_ + MonoDelta::FromMilliseconds(FLAGS_unresponsive_ts_rpc_timeout_ms)),
       attempt_(0),
@@ -3151,11 +3151,11 @@ shared_ptr<TSDescriptor> SelectReplica(const TSDescriptorVector& ts_descs,
 class AsyncAlterTable : public RetryingTSRpcTask {
  public:
   AsyncAlterTable(Master *master,
-                  const scoped_refptr<TabletInfo>& tablet)
+                  scoped_refptr<TabletInfo> tablet)
     : RetryingTSRpcTask(master,
                         gscoped_ptr<TSPicker>(new PickLeaderReplica(tablet)),
                         tablet->table()),
-      tablet_(tablet) {
+      tablet_(std::move(tablet)) {
   }
 
   string type_name() const override { return "Alter Table"; }
@@ -4726,11 +4726,11 @@ bool CatalogManager::ScopedLeaderSharedLock::CheckIsInitializedAndIsLeaderOrResp
 #define INITTED_OR_RESPOND(RespClass) \
   template bool \
   CatalogManager::ScopedLeaderSharedLock::CheckIsInitializedOrRespond( \
-      RespClass* resp, RpcContext* rpc)
+      RespClass* resp, RpcContext* rpc) /* NOLINT */
 #define INITTED_AND_LEADER_OR_RESPOND(RespClass) \
   template bool \
   CatalogManager::ScopedLeaderSharedLock::CheckIsInitializedAndIsLeaderOrRespond( \
-      RespClass* resp, RpcContext* rpc)
+      RespClass* resp, RpcContext* rpc) /* NOLINT */
 
 INITTED_OR_RESPOND(ConnectToMasterResponsePB);
 INITTED_OR_RESPOND(GetMasterRegistrationResponsePB);
@@ -4753,9 +4753,9 @@ INITTED_AND_LEADER_OR_RESPOND(ReplaceTabletResponsePB);
 // TabletInfo
 ////////////////////////////////////////////////////////////
 
-TabletInfo::TabletInfo(const scoped_refptr<TableInfo>& table, string tablet_id)
+TabletInfo::TabletInfo(scoped_refptr<TableInfo> table, string tablet_id)
     : tablet_id_(std::move(tablet_id)),
-      table_(table),
+      table_(std::move(table)),
       last_create_tablet_time_(MonoTime::Now()),
       reported_schema_version_(NOT_YET_REPORTED) {}
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/master/catalog_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/catalog_manager.h b/src/kudu/master/catalog_manager.h
index 8e78b8a..997e355 100644
--- a/src/kudu/master/catalog_manager.h
+++ b/src/kudu/master/catalog_manager.h
@@ -145,7 +145,7 @@ class TabletInfo : public RefCountedThreadSafe<TabletInfo> {
     NOT_YET_REPORTED = -1L
   };
 
-  TabletInfo(const scoped_refptr<TableInfo>& table, std::string tablet_id);
+  TabletInfo(scoped_refptr<TableInfo> table, std::string tablet_id);
 
   const std::string& id() const { return tablet_id_; }
   const scoped_refptr<TableInfo>& table() const { return table_; }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/master/sys_catalog.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/sys_catalog.cc b/src/kudu/master/sys_catalog.cc
index dc8cba7..3cc8aa4 100644
--- a/src/kudu/master/sys_catalog.cc
+++ b/src/kudu/master/sys_catalog.cc
@@ -51,6 +51,7 @@
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/inbound_call.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/inbound_call.cc b/src/kudu/rpc/inbound_call.cc
index 8161c16..44b5ec2 100644
--- a/src/kudu/rpc/inbound_call.cc
+++ b/src/kudu/rpc/inbound_call.cc
@@ -276,7 +276,7 @@ void InboundCall::RecordCallReceived() {
   timing_.time_received = MonoTime::Now();
 }
 
-void InboundCall::RecordHandlingStarted(scoped_refptr<Histogram> incoming_queue_time) {
+void InboundCall::RecordHandlingStarted(Histogram* incoming_queue_time) {
   DCHECK(incoming_queue_time != nullptr);
   DCHECK(!timing_.time_handled.Initialized());  // Protect against multiple calls.
   timing_.time_handled = MonoTime::Now();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/inbound_call.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/inbound_call.h b/src/kudu/rpc/inbound_call.h
index b61f0fa..e4083de 100644
--- a/src/kudu/rpc/inbound_call.h
+++ b/src/kudu/rpc/inbound_call.h
@@ -175,7 +175,7 @@ class InboundCall {
   // Updates the Histogram with time elapsed since the call was received,
   // and should only be called once on a given instance.
   // Not thread-safe. Should only be called by the current "owner" thread.
-  void RecordHandlingStarted(scoped_refptr<Histogram> incoming_queue_time);
+  void RecordHandlingStarted(Histogram* incoming_queue_time);
 
   // Return true if the deadline set by the client has already elapsed.
   // In this case, the server may stop processing the call, since the

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/periodic.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/periodic.cc b/src/kudu/rpc/periodic.cc
index 2ca066c..9ab9ce9 100644
--- a/src/kudu/rpc/periodic.cc
+++ b/src/kudu/rpc/periodic.cc
@@ -58,7 +58,7 @@ PeriodicTimer::PeriodicTimer(
     : messenger_(std::move(messenger)),
       functor_(std::move(functor)),
       period_(period),
-      options_(std::move(options)),
+      options_(options),
       rng_(GetRandomSeed32()),
       current_callback_generation_(0),
       num_callbacks_for_tests_(0),

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/protoc-gen-krpc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/protoc-gen-krpc.cc b/src/kudu/rpc/protoc-gen-krpc.cc
index 18ab7ab..cc25f67 100644
--- a/src/kudu/rpc/protoc-gen-krpc.cc
+++ b/src/kudu/rpc/protoc-gen-krpc.cc
@@ -93,7 +93,7 @@ class FileSubstitutions : public Substituter {
   static const std::string kProtoExtension;
 
   Status Init(const FileDescriptor *file) {
-    string path = file->name();
+    const string& path = file->name();
     map_["path"] = path;
 
     // Initialize path_
@@ -152,7 +152,7 @@ class FileSubstitutions : public Substituter {
   // Extract the last filename component.
   static void GetBaseName(const string &path,
                           string *base) {
-    size_t last_slash = path.find_last_of("/");
+    size_t last_slash = path.find_last_of('/');
     if (last_slash != string::npos) {
       *base = path.substr(last_slash + 1);
     } else {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/remote_method.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/remote_method.cc b/src/kudu/rpc/remote_method.cc
index 24ca050..70b0d02 100644
--- a/src/kudu/rpc/remote_method.cc
+++ b/src/kudu/rpc/remote_method.cc
@@ -30,8 +30,9 @@ namespace rpc {
 using strings::Substitute;
 
 RemoteMethod::RemoteMethod(std::string service_name,
-                           const std::string method_name)
-    : service_name_(std::move(service_name)), method_name_(method_name) {}
+                           std::string method_name)
+    : service_name_(std::move(service_name)),
+      method_name_(std::move(method_name)) {}
 
 void RemoteMethod::FromPB(const RemoteMethodPB& pb) {
   DCHECK(pb.IsInitialized()) << "PB is uninitialized: " << pb.InitializationErrorString();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/remote_method.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/remote_method.h b/src/kudu/rpc/remote_method.h
index 5b78dad..a0a35bb 100644
--- a/src/kudu/rpc/remote_method.h
+++ b/src/kudu/rpc/remote_method.h
@@ -30,7 +30,7 @@ class RemoteMethodPB;
 class RemoteMethod {
  public:
   RemoteMethod() {}
-  RemoteMethod(std::string service_name, const std::string method_name);
+  RemoteMethod(std::string service_name, std::string method_name);
   std::string service_name() const { return service_name_; }
   std::string method_name() const { return method_name_; }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/result_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/result_tracker.cc b/src/kudu/rpc/result_tracker.cc
index e04aa0b..d26ff87 100644
--- a/src/kudu/rpc/result_tracker.cc
+++ b/src/kudu/rpc/result_tracker.cc
@@ -361,7 +361,7 @@ void ResultTracker::RecordCompletionAndRespond(const RequestIdPB& request_id,
 }
 
 void ResultTracker::FailAndRespondInternal(const RequestIdPB& request_id,
-                                           HandleOngoingRpcFunc func) {
+                                           const HandleOngoingRpcFunc& func) {
   vector<OnGoingRpcInfo> to_handle;
   {
     lock_guard<simple_spinlock> l(lock_);

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/result_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/result_tracker.h b/src/kudu/rpc/result_tracker.h
index 6256e71..890bd74 100644
--- a/src/kudu/rpc/result_tracker.h
+++ b/src/kudu/rpc/result_tracker.h
@@ -342,7 +342,7 @@ class ResultTracker : public RefCountedThreadSafe<ResultTracker> {
   // Helper method to handle the multiple overloads of FailAndRespond. Takes a lambda
   // that knows what to do with OnGoingRpcInfo in each individual case.
   void FailAndRespondInternal(const rpc::RequestIdPB& request_id,
-                              HandleOngoingRpcFunc func);
+                              const HandleOngoingRpcFunc& func);
 
   CompletionRecord* FindCompletionRecordOrNullUnlocked(const RequestIdPB& request_id);
   CompletionRecord* FindCompletionRecordOrDieUnlocked(const RequestIdPB& request_id);

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/rpc_context.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_context.cc b/src/kudu/rpc/rpc_context.cc
index a375c62..97da445 100644
--- a/src/kudu/rpc/rpc_context.cc
+++ b/src/kudu/rpc/rpc_context.cc
@@ -49,11 +49,11 @@ namespace rpc {
 RpcContext::RpcContext(InboundCall *call,
                        const google::protobuf::Message *request_pb,
                        google::protobuf::Message *response_pb,
-                       const scoped_refptr<ResultTracker>& result_tracker)
+                       scoped_refptr<ResultTracker> result_tracker)
   : call_(CHECK_NOTNULL(call)),
     request_pb_(request_pb),
     response_pb_(response_pb),
-    result_tracker_(result_tracker) {
+    result_tracker_(std::move(result_tracker)) {
   VLOG(4) << call_->remote_method().service_name() << ": Received RPC request for "
           << call_->ToString() << ":" << std::endl << SecureDebugString(*request_pb_);
   TRACE_EVENT_ASYNC_BEGIN2("rpc_call", "RPC", this,

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/rpc_context.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_context.h b/src/kudu/rpc/rpc_context.h
index c8462ab..c729d5e 100644
--- a/src/kudu/rpc/rpc_context.h
+++ b/src/kudu/rpc/rpc_context.h
@@ -70,7 +70,7 @@ class RpcContext {
   RpcContext(InboundCall *call,
              const google::protobuf::Message *request_pb,
              google::protobuf::Message *response_pb,
-             const scoped_refptr<ResultTracker>& result_tracker);
+             scoped_refptr<ResultTracker> result_tracker);
 
   ~RpcContext();
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/service_pool.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_pool.cc b/src/kudu/rpc/service_pool.cc
index 5acb5e4..62d46d6 100644
--- a/src/kudu/rpc/service_pool.cc
+++ b/src/kudu/rpc/service_pool.cc
@@ -199,7 +199,7 @@ void ServicePool::RunThread() {
       return;
     }
 
-    incoming->RecordHandlingStarted(incoming_queue_time_);
+    incoming->RecordHandlingStarted(incoming_queue_time_.get());
     ADOPT_TRACE(incoming->trace());
 
     if (PREDICT_FALSE(incoming->ClientTimedOut())) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/rpc/transfer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/transfer.cc b/src/kudu/rpc/transfer.cc
index 7fb8389..bdf5191 100644
--- a/src/kudu/rpc/transfer.cc
+++ b/src/kudu/rpc/transfer.cc
@@ -65,13 +65,16 @@ using std::set;
 using std::string;
 using strings::Substitute;
 
-#define RETURN_ON_ERROR_OR_SOCKET_NOT_READY(status) \
-  if (PREDICT_FALSE(!status.ok())) {                            \
-    if (Socket::IsTemporarySocketError(status.posix_code())) {  \
-      return Status::OK(); /* EAGAIN, etc. */                   \
-    }                                                           \
-    return status;                                              \
-  }
+#define RETURN_ON_ERROR_OR_SOCKET_NOT_READY(status)               \
+  do {                                                            \
+    Status _s = (status);                                         \
+    if (PREDICT_FALSE(!_s.ok())) {                                \
+      if (Socket::IsTemporarySocketError(_s.posix_code())) {      \
+        return Status::OK(); /* EAGAIN, etc. */                   \
+      }                                                           \
+      return _s;                                                  \
+    }                                                             \
+  } while (0)
 
 TransferCallbacks::~TransferCallbacks()
 {}

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/security/cert.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/cert.cc b/src/kudu/security/cert.cc
index 7d00a4b..e2fc2fb 100644
--- a/src/kudu/security/cert.cc
+++ b/src/kudu/security/cert.cc
@@ -140,7 +140,7 @@ boost::optional<string> Cert::KuduKerberosPrincipal() const {
   X509_EXTENSION* ext = X509_get_ext(GetTopOfChainX509(), idx);
   ASN1_OCTET_STRING* octet_str = X509_EXTENSION_get_data(ext);
   const unsigned char* octet_str_data = octet_str->data;
-  long len; // NOLINT(runtime/int)
+  long len; // NOLINT
   int tag, xclass;
   if (ASN1_get_object(&octet_str_data, &len, &tag, &xclass, octet_str->length) != 0 ||
       tag != V_ASN1_UTF8STRING) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/compaction_policy.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction_policy.cc b/src/kudu/tablet/compaction_policy.cc
index 711a9b8..745f28b 100644
--- a/src/kudu/tablet/compaction_policy.cc
+++ b/src/kudu/tablet/compaction_policy.cc
@@ -335,7 +335,6 @@ void BudgetedCompactionPolicy::RunExact(
     if (inrange_candidates.empty()) continue;
 
     solver.Reset(size_budget_mb_, &inrange_candidates);
-    ab_max = cc_a.cdf_max_key();
 
     vector<int> chosen_indexes;
     int j = 0;

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/delta_stats.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_stats.cc b/src/kudu/tablet/delta_stats.cc
index b0e83fe..9436dd7 100644
--- a/src/kudu/tablet/delta_stats.cc
+++ b/src/kudu/tablet/delta_stats.cc
@@ -133,8 +133,7 @@ Status DeltaStats::InitFromPB(const DeltaStatsPB& pb) {
 }
 
 void DeltaStats::AddColumnIdsWithUpdates(std::set<ColumnId>* col_ids) const {
-  typedef std::pair<ColumnId, int64_t> entry;
-  for (const entry& e : update_counts_by_col_id_) {
+  for (const auto& e : update_counts_by_col_id_) {
     if (e.second > 0) {
       col_ids->insert(e.first);
     }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/lock_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/lock_manager-test.cc b/src/kudu/tablet/lock_manager-test.cc
index 9a0354b..719da5f 100644
--- a/src/kudu/tablet/lock_manager-test.cc
+++ b/src/kudu/tablet/lock_manager-test.cc
@@ -114,7 +114,7 @@ TEST_F(LockManagerTest, TestMoveLock) {
   // Move it to a new instance.
   ScopedRowLock moved_lock(std::move(row_lock));
   ASSERT_TRUE(moved_lock.acquired());
-  ASSERT_FALSE(row_lock.acquired()); // NOLINT(misc-use-after-move)
+  ASSERT_FALSE(row_lock.acquired()); // NOLINT(bugprone-use-after-move)
 }
 
 class LmTestResource {

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/memrowset.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/memrowset.cc b/src/kudu/tablet/memrowset.cc
index 3c21347..81acc3a 100644
--- a/src/kudu/tablet/memrowset.cc
+++ b/src/kudu/tablet/memrowset.cc
@@ -88,9 +88,9 @@ bool MRSRow::IsGhost() const {
 namespace {
 
 shared_ptr<MemTracker> CreateMemTrackerForMemRowSet(
-    int64_t id, const shared_ptr<MemTracker>& parent_tracker) {
+    int64_t id, shared_ptr<MemTracker> parent_tracker) {
   string mem_tracker_id = Substitute("MemRowSet-$0", id);
-  return MemTracker::CreateTracker(-1, mem_tracker_id, parent_tracker);
+  return MemTracker::CreateTracker(-1, mem_tracker_id, std::move(parent_tracker));
 }
 
 } // anonymous namespace
@@ -113,8 +113,9 @@ MemRowSet::MemRowSet(int64_t id,
                      shared_ptr<MemTracker> parent_tracker)
   : id_(id),
     schema_(schema),
-    allocator_(new MemoryTrackingBufferAllocator(HeapBufferAllocator::Get(),
-                                                 CreateMemTrackerForMemRowSet(id, parent_tracker))),
+    allocator_(new MemoryTrackingBufferAllocator(
+        HeapBufferAllocator::Get(),
+        CreateMemTrackerForMemRowSet(id, std::move(parent_tracker)))),
     arena_(new ThreadSafeMemoryTrackingArena(kInitialArenaSize, allocator_)),
     tree_(arena_),
     debug_insert_count_(0),

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/mt-tablet-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mt-tablet-test.cc b/src/kudu/tablet/mt-tablet-test.cc
index 4141683..446d1c2 100644
--- a/src/kudu/tablet/mt-tablet-test.cc
+++ b/src/kudu/tablet/mt-tablet-test.cc
@@ -410,7 +410,7 @@ class MultiThreadedTabletTest : public TabletTestBase<SETUP> {
 
     while (running_insert_count_.count() > 0) {
       num_rowsets_ts->SetValue(tablet()->num_rowsets());
-      memrowset_size_ts->SetValue(tablet()->MemRowSetSize() / 1024);
+      memrowset_size_ts->SetValue(tablet()->MemRowSetSize() / 1024.0);
 
       // Wait, unless the inserters are all done.
       running_insert_count_.WaitFor(MonoDelta::FromMilliseconds(250));

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/rowset.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset.cc b/src/kudu/tablet/rowset.cc
index 9a85f8d..7122aad 100644
--- a/src/kudu/tablet/rowset.cc
+++ b/src/kudu/tablet/rowset.cc
@@ -240,7 +240,7 @@ shared_ptr<RowSetMetadata> DuplicatingRowSet::metadata() {
   return shared_ptr<RowSetMetadata>(reinterpret_cast<RowSetMetadata *>(NULL));
 }
 
-Status DuplicatingRowSet::DebugDump(vector<string> *lines) {
+Status DuplicatingRowSet::DebugDump(vector<string> *lines) { // NOLINT(*)
   int i = 1;
   for (const shared_ptr<RowSet> &rs : old_rowsets_) {
     LOG_STRING(INFO, lines) << "Duplicating rowset input " << ToString() << " "

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/rowset_info.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_info.cc b/src/kudu/tablet/rowset_info.cc
index 44fbd10..e8395d4 100644
--- a/src/kudu/tablet/rowset_info.cc
+++ b/src/kudu/tablet/rowset_info.cc
@@ -203,7 +203,7 @@ void RowSetInfo::CollectOrdered(const RowSetTree& tree,
   // else there's a race since we see endpoints twice and a delta compaction might finish in
   // between.
   RowSetVector available_rowsets;
-  for (const shared_ptr<RowSet> rs : tree.all_rowsets()) {
+  for (const auto& rs : tree.all_rowsets()) {
     if (rs->IsAvailableForCompaction()) {
       available_rowsets.push_back(rs);
     }

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/tablet-harness.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-harness.h b/src/kudu/tablet/tablet-harness.h
index ffba808..f344006 100644
--- a/src/kudu/tablet/tablet-harness.h
+++ b/src/kudu/tablet/tablet-harness.h
@@ -116,7 +116,7 @@ class TabletHarness {
                              clock_,
                              std::shared_ptr<MemTracker>(),
                              metrics_registry_.get(),
-                             new log::LogAnchorRegistry()));
+                             make_scoped_refptr(new log::LogAnchorRegistry())));
     return Status::OK();
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/tablet-test-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-test-base.h b/src/kudu/tablet/tablet-test-base.h
index 2f99025..4a57060 100644
--- a/src/kudu/tablet/tablet-test-base.h
+++ b/src/kudu/tablet/tablet-test-base.h
@@ -31,19 +31,19 @@
 #include "kudu/common/row.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/gutil/walltime.h"
+#include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/util/env.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_graph.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
-#include "kudu/tablet/local_tablet_writer.h"
-#include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet-test-util.h"
-#include "kudu/gutil/strings/numbers.h"
 
 namespace kudu {
 namespace tablet {
@@ -149,7 +149,8 @@ struct IntKeyTestSetup {
 
   // builds a row key from an existing row for updates
   template<class RowType>
-  void BuildRowKeyFromExistingRow(KuduPartialRow *dst_row, const RowType& row) {
+  void BuildRowKeyFromExistingRow(KuduPartialRow * /*row*/,
+                                  const RowType& /*src_row*/) {
     CHECK(false) << "Unsupported type";
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/tablet.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet.cc b/src/kudu/tablet/tablet.cc
index 8e7b8b4..9ea89db 100644
--- a/src/kudu/tablet/tablet.cc
+++ b/src/kudu/tablet/tablet.cc
@@ -204,17 +204,17 @@ TabletComponents::TabletComponents(shared_ptr<MemRowSet> mrs,
 // Tablet
 ////////////////////////////////////////////////////////////
 
-Tablet::Tablet(const scoped_refptr<TabletMetadata>& metadata,
-               const scoped_refptr<clock::Clock>& clock,
-               const shared_ptr<MemTracker>& parent_mem_tracker,
+Tablet::Tablet(scoped_refptr<TabletMetadata> metadata,
+               scoped_refptr<clock::Clock> clock,
+               shared_ptr<MemTracker> parent_mem_tracker,
                MetricRegistry* metric_registry,
-               const scoped_refptr<LogAnchorRegistry>& log_anchor_registry)
+               scoped_refptr<LogAnchorRegistry> log_anchor_registry)
   : key_schema_(metadata->schema().CreateKeyProjection()),
-    metadata_(metadata),
-    log_anchor_registry_(log_anchor_registry),
-    mem_trackers_(tablet_id(), parent_mem_tracker),
+    metadata_(std::move(metadata)),
+    log_anchor_registry_(std::move(log_anchor_registry)),
+    mem_trackers_(tablet_id(), std::move(parent_mem_tracker)),
     next_mrs_id_(0),
-    clock_(clock),
+    clock_(std::move(clock)),
     rowsets_flush_sem_(1),
     state_(kInitialized) {
       CHECK(schema()->has_column_ids());

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/tablet.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet.h b/src/kudu/tablet/tablet.h
index ce193e5..c17426c 100644
--- a/src/kudu/tablet/tablet.h
+++ b/src/kudu/tablet/tablet.h
@@ -97,11 +97,11 @@ class Tablet {
   //
   // If 'metric_registry' is non-NULL, then this tablet will create a 'tablet' entity
   // within the provided registry. Otherwise, no metrics are collected.
-  Tablet(const scoped_refptr<TabletMetadata>& metadata,
-         const scoped_refptr<clock::Clock>& clock,
-         const std::shared_ptr<MemTracker>& parent_mem_tracker,
+  Tablet(scoped_refptr<TabletMetadata> metadata,
+         scoped_refptr<clock::Clock> clock,
+         std::shared_ptr<MemTracker> parent_mem_tracker,
          MetricRegistry* metric_registry,
-         const scoped_refptr<log::LogAnchorRegistry>& log_anchor_registry);
+         scoped_refptr<log::LogAnchorRegistry> log_anchor_registry);
 
   ~Tablet();
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/tablet_bootstrap.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_bootstrap.cc b/src/kudu/tablet/tablet_bootstrap.cc
index 04516b4..1dbafaf 100644
--- a/src/kudu/tablet/tablet_bootstrap.cc
+++ b/src/kudu/tablet/tablet_bootstrap.cc
@@ -197,14 +197,14 @@ class FlushedStoresSnapshot {
 // we need to set it before replay or we won't be able to re-rebuild.
 class TabletBootstrap {
  public:
-  TabletBootstrap(const scoped_refptr<TabletMetadata>& tablet_meta,
+  TabletBootstrap(scoped_refptr<TabletMetadata> tablet_meta,
                   RaftConfigPB committed_raft_config,
-                  const scoped_refptr<Clock>& clock,
+                  scoped_refptr<Clock> clock,
                   shared_ptr<MemTracker> mem_tracker,
-                  const scoped_refptr<ResultTracker>& result_tracker,
+                  scoped_refptr<ResultTracker> result_tracker,
                   MetricRegistry* metric_registry,
-                  const scoped_refptr<TabletReplica>& tablet_replica,
-                  const scoped_refptr<LogAnchorRegistry>& log_anchor_registry);
+                  scoped_refptr<TabletReplica> tablet_replica,
+                  scoped_refptr<LogAnchorRegistry> log_anchor_registry);
 
   // Plays the log segments, rebuilding the portion of the Tablet's soft
   // state that is present in the log (additional soft state may be present
@@ -439,21 +439,27 @@ void TabletBootstrap::SetStatusMessage(const string& status) {
   if (tablet_replica_) tablet_replica_->SetStatusMessage(status);
 }
 
-Status BootstrapTablet(const scoped_refptr<TabletMetadata>& tablet_meta,
+Status BootstrapTablet(scoped_refptr<TabletMetadata> tablet_meta,
                        RaftConfigPB committed_raft_config,
-                       const scoped_refptr<Clock>& clock,
-                       const shared_ptr<MemTracker>& mem_tracker,
-                       const scoped_refptr<ResultTracker>& result_tracker,
+                       scoped_refptr<Clock> clock,
+                       shared_ptr<MemTracker> mem_tracker,
+                       scoped_refptr<ResultTracker> result_tracker,
                        MetricRegistry* metric_registry,
-                       const scoped_refptr<TabletReplica>& tablet_replica,
+                       scoped_refptr<TabletReplica> tablet_replica,
                        shared_ptr<tablet::Tablet>* rebuilt_tablet,
                        scoped_refptr<log::Log>* rebuilt_log,
-                       const scoped_refptr<log::LogAnchorRegistry>& log_anchor_registry,
+                       scoped_refptr<log::LogAnchorRegistry> log_anchor_registry,
                        ConsensusBootstrapInfo* consensus_info) {
   TRACE_EVENT1("tablet", "BootstrapTablet",
                "tablet_id", tablet_meta->tablet_id());
-  TabletBootstrap bootstrap(tablet_meta, std::move(committed_raft_config), clock, mem_tracker,
-                            result_tracker, metric_registry, tablet_replica, log_anchor_registry);
+  TabletBootstrap bootstrap(std::move(tablet_meta),
+                            std::move(committed_raft_config),
+                            std::move(clock),
+                            std::move(mem_tracker),
+                            std::move(result_tracker),
+                            metric_registry,
+                            std::move(tablet_replica),
+                            std::move(log_anchor_registry));
   RETURN_NOT_OK(bootstrap.Bootstrap(rebuilt_tablet, rebuilt_log, consensus_info));
   // This is necessary since OpenNewLog() initially disables sync.
   RETURN_NOT_OK((*rebuilt_log)->ReEnableSyncIfRequired());
@@ -479,21 +485,21 @@ static string DebugInfo(const string& tablet_id,
 }
 
 TabletBootstrap::TabletBootstrap(
-    const scoped_refptr<TabletMetadata>& tablet_meta,
+    scoped_refptr<TabletMetadata> tablet_meta,
     RaftConfigPB committed_raft_config,
-    const scoped_refptr<Clock>& clock, shared_ptr<MemTracker> mem_tracker,
-    const scoped_refptr<ResultTracker>& result_tracker,
+    scoped_refptr<Clock> clock, shared_ptr<MemTracker> mem_tracker,
+    scoped_refptr<ResultTracker> result_tracker,
     MetricRegistry* metric_registry,
-    const scoped_refptr<TabletReplica>& tablet_replica,
-    const scoped_refptr<LogAnchorRegistry>& log_anchor_registry)
-    : tablet_meta_(tablet_meta),
+    scoped_refptr<TabletReplica> tablet_replica,
+    scoped_refptr<LogAnchorRegistry> log_anchor_registry)
+    : tablet_meta_(std::move(tablet_meta)),
       committed_raft_config_(std::move(committed_raft_config)),
-      clock_(clock),
+      clock_(std::move(clock)),
       mem_tracker_(std::move(mem_tracker)),
-      result_tracker_(result_tracker),
+      result_tracker_(std::move(result_tracker)),
       metric_registry_(metric_registry),
-      tablet_replica_(tablet_replica),
-      log_anchor_registry_(log_anchor_registry) {}
+      tablet_replica_(std::move(tablet_replica)),
+      log_anchor_registry_(std::move(log_anchor_registry)) {}
 
 Status TabletBootstrap::Bootstrap(shared_ptr<Tablet>* rebuilt_tablet,
                                   scoped_refptr<Log>* rebuilt_log,
@@ -1066,7 +1072,7 @@ Status TabletBootstrap::HandleEntryPair(LogEntryPB* replicate_entry, LogEntryPB*
 #define RETURN_NOT_OK_REPLAY(ReplayMethodName, replicate, commit)       \
   RETURN_NOT_OK_PREPEND(ReplayMethodName(replicate, commit),            \
                         Substitute(error_fmt, OperationType_Name(op_type), \
-                                   SecureShortDebugString(*replicate),   \
+                                   SecureShortDebugString(*(replicate)), \
                                    SecureShortDebugString(commit)))
 
   ReplicateMsg* replicate = replicate_entry->mutable_replicate();

http://git-wip-us.apache.org/repos/asf/kudu/blob/b69f288e/src/kudu/tablet/tablet_bootstrap.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_bootstrap.h b/src/kudu/tablet/tablet_bootstrap.h
index 4a147cc..6dace64 100644
--- a/src/kudu/tablet/tablet_bootstrap.h
+++ b/src/kudu/tablet/tablet_bootstrap.h
@@ -57,16 +57,16 @@ extern const char* kLogRecoveryDir;
 //
 // This is a synchronous method, but is typically called within a thread pool by
 // TSTabletManager.
-Status BootstrapTablet(const scoped_refptr<TabletMetadata>& tablet_meta,
+Status BootstrapTablet(scoped_refptr<TabletMetadata> tablet_meta,
                        consensus::RaftConfigPB committed_raft_config,
-                       const scoped_refptr<clock::Clock>& clock,
-                       const std::shared_ptr<MemTracker>& mem_tracker,
-                       const scoped_refptr<rpc::ResultTracker>& result_tracker,
+                       scoped_refptr<clock::Clock> clock,
+                       std::shared_ptr<MemTracker> mem_tracker,
+                       scoped_refptr<rpc::ResultTracker> result_tracker,
                        MetricRegistry* metric_registry,
-                       const scoped_refptr<TabletReplica>& tablet_replica,
+                       scoped_refptr<TabletReplica> tablet_replica,
                        std::shared_ptr<Tablet>* rebuilt_tablet,
                        scoped_refptr<log::Log>* rebuilt_log,
-                       const scoped_refptr<log::LogAnchorRegistry>& log_anchor_registry,
+                       scoped_refptr<log::LogAnchorRegistry> log_anchor_registry,
                        consensus::ConsensusBootstrapInfo* consensus_info);
 
 }  // namespace tablet