From f65d491e1d0491a066fc1ab4934d08da5820a1d5 Mon Sep 17 00:00:00 2001
From: Bankim Bhavsar <bankim@cloudera.com>
Date: Tue, 15 Jan 2019 09:55:56 -0800
Subject: [PATCH] KUDU-2456 Limit number of pending transactions logged

Transaction tracker logs all pending transaction with some backoff.
However there can be large number of transactions and logging
all of them can be overwhelming. Hence limit logging of pending
transactions to a small number like 50.

Tests:
- Pending

Change-Id: I626adfea269a15b5cadd13876c940ba5bfdcfb03
---
 src/kudu/tablet/transactions/transaction_tracker.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/kudu/tablet/transactions/transaction_tracker.cc b/src/kudu/tablet/transactions/transaction_tracker.cc
index b23ef9e..f82b92a 100644
--- a/src/kudu/tablet/transactions/transaction_tracker.cc
+++ b/src/kudu/tablet/transactions/transaction_tracker.cc
@@ -207,6 +207,7 @@ void TransactionTracker::WaitForAllToFinish() const {
 Status TransactionTracker::WaitForAllToFinish(const MonoDelta& timeout) const {
   int wait_time_us = 250;
   int num_complaints = 0;
+  static const size_t kMaxTxnsToPrint = 50;
   MonoTime start_time = MonoTime::Now();
   MonoTime next_log_time = start_time + MonoDelta::FromSeconds(1);
 
@@ -228,9 +229,11 @@ Status TransactionTracker::WaitForAllToFinish(const MonoDelta& timeout) const {
     if (now > next_log_time) {
       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 (const auto& driver : txns) {
-        LOG(INFO) << driver->ToString();
+      LOG(INFO) << Substitute("Dumping upto $0 currently running transactions: ",
+                              kMaxTxnsToPrint);
+      const int num_txn_limit = std::min(txns.size(), kMaxTxnsToPrint);
+      for (int i = 0; i < num_txn_limit; i++) {
+        LOG(INFO) << txns[i]->ToString();
       }
 
       num_complaints++;
-- 
2.7.4

