You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2021/04/07 04:38:29 UTC

[impala] branch master updated (1231208 -> e30178d)

This is an automated email from the ASF dual-hosted git repository.

joemcdonnell pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git.


    from 1231208  IMPALA-10494: Making use of the min/max column stats to improve min/max filters
     new f18e0d7  Upgrade urllib3 to 1.24.2
     new e30178d  IMPALA-10600: Provide fewer details in logs

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 be/src/catalog/catalog-server.cc      |   5 +-
 be/src/service/impala-hs2-server.cc   |  53 +++++------
 be/src/util/thrift-debug-util.h       | 161 +++++++++++++++++++++++++++++++---
 bin/jenkins/critique-gerrit-review.py |   8 +-
 infra/python/deps/requirements.txt    |   2 +-
 5 files changed, 187 insertions(+), 42 deletions(-)

[impala] 02/02: IMPALA-10600: Provide fewer details in logs

Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit e30178dce447180ccd93e3375543b3bca2497e4c
Author: Zoltan Borok-Nagy <bo...@cloudera.com>
AuthorDate: Thu Mar 11 15:56:08 2021 +0100

    IMPALA-10600: Provide fewer details in logs
    
    The impalaD logs contain too much unnecessary information.
    This patch hides some fields of RPC requests.
    
    This patch also tries to prevent logging these fields in the
    future by:
     * using template metaprogramming to raise compile-time errors
     * updating critique-gerrit-review.py to look for the string
       'ThriftDebugString'
    
    Change-Id: I8f522f458ca399b48d39a1e722421e6248948c6b
    Reviewed-on: http://gerrit.cloudera.org:8080/17174
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/src/catalog/catalog-server.cc      |   5 +-
 be/src/service/impala-hs2-server.cc   |  53 +++++------
 be/src/util/thrift-debug-util.h       | 161 +++++++++++++++++++++++++++++++---
 bin/jenkins/critique-gerrit-review.py |   8 +-
 4 files changed, 186 insertions(+), 41 deletions(-)

diff --git a/be/src/catalog/catalog-server.cc b/be/src/catalog/catalog-server.cc
index fde90ba..ed0f118 100644
--- a/be/src/catalog/catalog-server.cc
+++ b/be/src/catalog/catalog-server.cc
@@ -40,7 +40,6 @@
 using boost::bind;
 using boost::mem_fn;
 using namespace apache::thrift;
-using namespace impala;
 using namespace rapidjson;
 using namespace strings;
 
@@ -100,6 +99,8 @@ DECLARE_bool(compact_catalog_topic);
 DECLARE_int32(stress_catalog_startup_delay_ms);
 #endif
 
+namespace impala {
+
 string CatalogServer::IMPALA_CATALOG_TOPIC = "catalog-update";
 
 const string CATALOG_SERVER_TOPIC_PROCESSING_TIMES =
@@ -793,3 +794,5 @@ void CatalogServer::HealthzHandler(
   *(data) << "Not Available";
   *response = HttpStatusCode::ServiceUnavailable;
 }
+
+}
diff --git a/be/src/service/impala-hs2-server.cc b/be/src/service/impala-hs2-server.cc
index 15dd523..ef3d0a1 100644
--- a/be/src/service/impala-hs2-server.cc
+++ b/be/src/service/impala-hs2-server.cc
@@ -55,6 +55,7 @@
 #include "util/runtime-profile-counters.h"
 #include "util/stopwatch.h"
 #include "util/string-parser.h"
+#include "util/thrift-debug-util.h"
 #include "util/uid-util.h"
 
 #include "common/names.h"
@@ -230,7 +231,7 @@ Status ImpalaServer::FetchInternal(TUniqueId query_id, SessionState* session,
 Status ImpalaServer::TExecuteStatementReqToTQueryContext(
     const TExecuteStatementReq execute_request, TQueryCtx* query_ctx) {
   query_ctx->client_request.stmt = execute_request.statement;
-  VLOG_QUERY << "TExecuteStatementReq: " << ThriftDebugString(execute_request);
+  VLOG_QUERY << "TExecuteStatementReq: " << RedactedDebugString(execute_request);
   QueryOptionsMask set_query_options_mask;
   {
     shared_ptr<SessionState> session_state;
@@ -416,7 +417,7 @@ void ImpalaServer::OpenSession(TOpenSessionResp& return_val,
 
 void ImpalaServer::CloseSession(TCloseSessionResp& return_val,
     const TCloseSessionReq& request) {
-  VLOG_QUERY << "CloseSession(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "CloseSession(): request=" << RedactedDebugString(request);
 
   TUniqueId session_id;
   TUniqueId secret;
@@ -431,7 +432,7 @@ void ImpalaServer::CloseSession(TCloseSessionResp& return_val,
 
 void ImpalaServer::GetInfo(TGetInfoResp& return_val,
     const TGetInfoReq& request) {
-  VLOG_QUERY << "GetInfo(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetInfo(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TUniqueId session_id;
@@ -526,7 +527,7 @@ void ImpalaServer::ExecuteStatementCommon(TExecuteStatementResp& return_val,
   return_val.status.__set_statusCode(
       apache::hive::service::cli::thrift::TStatusCode::SUCCESS_STATUS);
 
-  VLOG_QUERY << "ExecuteStatement(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "ExecuteStatement(): return_val=" << RedactedDebugString(return_val);
   return;
 
  return_error:
@@ -548,7 +549,7 @@ Status ImpalaServer::SetupResultsCacheing(const QueryHandle& query_handle,
 
 void ImpalaServer::ExecuteStatement(TExecuteStatementResp& return_val,
     const TExecuteStatementReq& request) {
-  VLOG_QUERY << "ExecuteStatement(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "ExecuteStatement(): request=" << RedactedDebugString(request);
   ExecuteStatementCommon(return_val, request);
 }
 
@@ -571,7 +572,7 @@ void ImpalaServer::ExecutePlannedStatement(
 
 void ImpalaServer::GetTypeInfo(TGetTypeInfoResp& return_val,
     const TGetTypeInfoReq& request) {
-  VLOG_QUERY << "GetTypeInfo(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetTypeInfo(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -585,12 +586,12 @@ void ImpalaServer::GetTypeInfo(TGetTypeInfoResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetTypeInfo(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetTypeInfo(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetCatalogs(TGetCatalogsResp& return_val,
     const TGetCatalogsReq& request) {
-  VLOG_QUERY << "GetCatalogs(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetCatalogs(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -604,12 +605,12 @@ void ImpalaServer::GetCatalogs(TGetCatalogsResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetCatalogs(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetCatalogs(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetSchemas(TGetSchemasResp& return_val,
     const TGetSchemasReq& request) {
-  VLOG_QUERY << "GetSchemas(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetSchemas(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -623,12 +624,12 @@ void ImpalaServer::GetSchemas(TGetSchemasResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetSchemas(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetSchemas(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetTables(TGetTablesResp& return_val,
     const TGetTablesReq& request) {
-  VLOG_QUERY << "GetTables(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetTables(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -642,12 +643,12 @@ void ImpalaServer::GetTables(TGetTablesResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetTables(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetTables(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetTableTypes(TGetTableTypesResp& return_val,
     const TGetTableTypesReq& request) {
-  VLOG_QUERY << "GetTableTypes(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetTableTypes(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -661,13 +662,13 @@ void ImpalaServer::GetTableTypes(TGetTableTypesResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetTableTypes(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetTableTypes(): return_val=" << RedactedDebugString(return_val);
 
 }
 
 void ImpalaServer::GetColumns(TGetColumnsResp& return_val,
     const TGetColumnsReq& request) {
-  VLOG_QUERY << "GetColumns(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetColumns(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -681,12 +682,12 @@ void ImpalaServer::GetColumns(TGetColumnsResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetColumns(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetColumns(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetFunctions(TGetFunctionsResp& return_val,
     const TGetFunctionsReq& request) {
-  VLOG_QUERY << "GetFunctions(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetFunctions(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -700,12 +701,12 @@ void ImpalaServer::GetFunctions(TGetFunctionsResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetFunctions(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetFunctions(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetPrimaryKeys(TGetPrimaryKeysResp& return_val,
     const TGetPrimaryKeysReq& request) {
-  VLOG_QUERY << "GetPrimaryKeys(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetPrimaryKeys(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -718,12 +719,12 @@ void ImpalaServer::GetPrimaryKeys(TGetPrimaryKeysResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetPrimaryKeys(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetPrimaryKeys(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetCrossReference(TGetCrossReferenceResp& return_val,
     const TGetCrossReferenceReq& request) {
-  VLOG_QUERY << "GetCrossReference(): request=" << ThriftDebugString(request);
+  VLOG_QUERY << "GetCrossReference(): request=" << RedactedDebugString(request);
   HS2_RETURN_IF_ERROR(return_val, CheckNotShuttingDown(), SQLSTATE_GENERAL_ERROR);
 
   TMetadataOpRequest req;
@@ -736,7 +737,7 @@ void ImpalaServer::GetCrossReference(TGetCrossReferenceResp& return_val,
   return_val.__set_operationHandle(handle);
   return_val.__set_status(status);
 
-  VLOG_QUERY << "GetCrossReference(): return_val=" << ThriftDebugString(return_val);
+  VLOG_QUERY << "GetCrossReference(): return_val=" << RedactedDebugString(return_val);
 }
 
 void ImpalaServer::GetOperationStatus(TGetOperationStatusResp& return_val,
@@ -1182,7 +1183,7 @@ void ImpalaServer::GetDelegationToken(TGetDelegationTokenResp& return_val,
 
 void ImpalaServer::GetBackendConfig(TGetBackendConfigResp& return_val,
     const TGetBackendConfigReq& req) {
-  VLOG_QUERY << "GetBackendConfig(): req=" << ThriftDebugString(req);
+  VLOG_QUERY << "GetBackendConfig(): req=" << RedactedDebugString(req);
   const ThriftServer::ConnectionContext* connection_context =
       ThriftServer::GetThreadConnectionContext();
   if (connection_context->server_name != EXTERNAL_FRONTEND_SERVER_NAME) {
@@ -1203,7 +1204,7 @@ void ImpalaServer::GetBackendConfig(TGetBackendConfigResp& return_val,
 
 void ImpalaServer::GetExecutorMembership(
     TGetExecutorMembershipResp& return_val, const TGetExecutorMembershipReq& req) {
-  VLOG_QUERY << "GetExecutorMembership(): req=" << ThriftDebugString(req);
+  VLOG_QUERY << "GetExecutorMembership(): req=" << RedactedDebugString(req);
   const ThriftServer::ConnectionContext* connection_context =
       ThriftServer::GetThreadConnectionContext();
   if (connection_context->server_name != EXTERNAL_FRONTEND_SERVER_NAME) {
@@ -1271,7 +1272,7 @@ void ImpalaServer::AddSessionToConnection(
 
 void ImpalaServer::PingImpalaHS2Service(TPingImpalaHS2ServiceResp& return_val,
     const TPingImpalaHS2ServiceReq& req) {
-  VLOG_QUERY << "PingImpalaHS2Service(): request=" << ThriftDebugString(req);
+  VLOG_QUERY << "PingImpalaHS2Service(): request=" << RedactedDebugString(req);
   TUniqueId session_id;
   TUniqueId secret;
   HS2_RETURN_IF_ERROR(return_val,
diff --git a/be/src/util/thrift-debug-util.h b/be/src/util/thrift-debug-util.h
index 8169837..da07a1e 100644
--- a/be/src/util/thrift-debug-util.h
+++ b/be/src/util/thrift-debug-util.h
@@ -22,20 +22,155 @@
 
 DECLARE_string(debug_actions);
 
+namespace { // unnamed namespace
+
+constexpr char SECRET[] = "<HIDDEN>";
+
+template <typename...>
+using void_t = void;
+
+template <typename...>
+struct AlwaysFalse { static constexpr bool value = false; };
+
+/// HasSessionHandle is a metafunction that helps to decide whether the given type has
+/// a member 'sessionHandle'.
+/// I.e. HasSessionHandle<T>::values is true iff T::sessionHandle exists.
+template <typename, typename = void>
+struct HasSessionHandle : std::false_type {};
+
+template <typename T>
+struct HasSessionHandle<T, void_t<decltype(T::sessionHandle)>> :
+    std::is_same<decltype(T::sessionHandle),
+                 apache::hive::service::cli::thrift::TSessionHandle>
+{};
+
+/// HasOperationHandle is a metafunction that helps to decide whether the given type has
+/// a member 'operationHandle'.
+/// I.e. HasOperationHandle<T>::value is true iff T::operationHandle exists.
+template <typename, typename = void>
+struct HasOperationHandle : std::false_type {};
+
+template <typename T>
+struct HasOperationHandle<T, void_t<decltype(T::operationHandle)>> :
+    std::is_same<decltype(T::operationHandle),
+                 apache::hive::service::cli::thrift::TOperationHandle>
+{};
+
+template <typename T>
+struct HasSecret {
+  static constexpr bool value =
+      HasSessionHandle<T>::value ||
+      HasOperationHandle<T>::value ||
+      std::is_same<T, apache::hive::service::cli::thrift::THandleIdentifier>::value;
+};
+
+template <typename T,
+          std::enable_if_t<!HasSessionHandle<T>::value, T>* = nullptr>
+inline void RemoveSessionHandleSecret(T& t)
+{}
+
+template <typename T,
+          std::enable_if_t<HasSessionHandle<T>::value, T>* = nullptr>
+inline void RemoveSessionHandleSecret(T& t) {
+  t.sessionHandle.sessionId.secret = SECRET;
+}
+
+template <typename T,
+          std::enable_if_t<!HasOperationHandle<T>::value, T>* = nullptr>
+inline void RemoveOperationHandleSecret(T& t)
+{}
+
+template <typename T,
+          std::enable_if_t<HasOperationHandle<T>::value, T>* = nullptr>
+inline void RemoveOperationHandleSecret(T& t) {
+  t.operationHandle.operationId.secret = SECRET;
+}
+
+template <typename T>
+inline void RemoveSecret(T& t) {}
+
+inline void RemoveSecret(apache::hive::service::cli::thrift::THandleIdentifier& t) {
+  t.secret = SECRET;
+}
+
+template <typename T>
+inline void RemoveAnySecret(T& t) {
+  RemoveSessionHandleSecret(t);
+  RemoveOperationHandleSecret(t);
+  RemoveSecret(t);
+}
+
+} // unnamed namespace
+
 namespace impala {
 
-  /// This method is a wrapper over Thrift's ThriftDebugString. It catches any exception
-  /// that might be thrown by the underlying Thrift method. Typically, we use this method
-  /// when we suspect the ThriftStruct could be a large object like a HdfsTable whose
-  /// string representation could have significantly larger memory requirements than the
-  /// binary representation.
-  template<typename ThriftStruct>
-  std::string ThriftDebugStringNoThrow(ThriftStruct ts) noexcept {
-    try {
-      Status status = DebugAction(FLAGS_debug_actions, "THRIFT_DEBUG_STRING");
-      return apache::thrift::ThriftDebugString(ts);
-    } catch (std::exception& e) {
-      return "Unexpected exception received: " + std::string(e.what());
-    }
+/// Delegate to apache::thrift::ThriftDebugString() when T doesn't have a session secret.
+template <typename T,
+          std::enable_if_t<!HasSecret<T>::value>* = nullptr>
+inline std::string ThriftDebugString(const T& t) {
+  return apache::thrift::ThriftDebugString(t);
+}
+
+/// Raise compile-time error when ThriftDebugString() is used on an object that has
+/// a session secret.
+template <typename T,
+          std::enable_if_t<HasSecret<T>::value, T>* = nullptr>
+inline std::string ThriftDebugString(const T& t) {
+  static_assert(AlwaysFalse<T>::value,
+      "Don't use ThriftDebugString() to output this object. "
+      "Use RedactedDebugString() instead.");
+  return "";
+}
+
+/// Creates a copy of 't', overwrites the session secret of the copy, then returns
+/// a human-readable string.
+template <typename T,
+          std::enable_if_t<HasSecret<T>::value, T>* = nullptr>
+inline std::string RedactedDebugString(const T& t) {
+  T copy = t;
+  RemoveAnySecret(copy);
+  return apache::thrift::ThriftDebugString(copy);
+}
+
+/// Raise compile-time error when ThriftDebugStringNoThrow() is used on an object that has
+/// a session secret.
+template <typename T,
+          std::enable_if_t<HasSecret<T>::value, T>* = nullptr>
+inline std::string ThriftDebugStringNoThrow(const T& t) {
+  static_assert(AlwaysFalse<T>::value,
+      "Don't use ThriftDebugStringNoThrow() to output this object. "
+      "Use RedactedDebugStringNoThrow() instead.");
+  return "";
+}
+
+/// This method is a wrapper over Thrift's ThriftDebugString. It catches any exception
+/// that might be thrown by the underlying Thrift method. Typically, we use this method
+/// when we suspect the ThriftStruct could be a large object like a HdfsTable whose
+/// string representation could have significantly larger memory requirements than the
+/// binary representation.
+template <typename ThriftStruct,
+          std::enable_if_t<!HasSecret<ThriftStruct>::value>* = nullptr>
+std::string ThriftDebugStringNoThrow(ThriftStruct ts) noexcept {
+  try {
+    Status status = DebugAction(FLAGS_debug_actions, "THRIFT_DEBUG_STRING");
+    return apache::thrift::ThriftDebugString(ts);
+  } catch (std::exception& e) {
+    return "Unexpected exception received: " + std::string(e.what());
   }
 }
+
+/// Same as ThriftDebugStringNoThrow(), but hides the session/operation secret.
+template <typename T,
+          std::enable_if_t<HasSecret<T>::value, T>* = nullptr>
+inline std::string RedactedDebugStringNoThrow(const T& t) {
+  try {
+    T copy = t;
+    RemoveAnySecret(copy);
+    Status status = DebugAction(FLAGS_debug_actions, "THRIFT_DEBUG_STRING");
+    return apache::thrift::ThriftDebugString(copy);
+  } catch (std::exception& e) {
+    return "Unexpected exception received: " + std::string(e.what());
+  }
+}
+
+} // namespace impala
diff --git a/bin/jenkins/critique-gerrit-review.py b/bin/jenkins/critique-gerrit-review.py
index c2bfdb7..6e717d6 100755
--- a/bin/jenkins/critique-gerrit-review.py
+++ b/bin/jenkins/critique-gerrit-review.py
@@ -179,7 +179,7 @@ def add_misc_comments_for_line(comments, line, curr_file, curr_line_num):
         {"message": "line has trailing whitespace", "line": curr_line_num})
 
   # Check for long lines. Skip .py files since flake8 already flags long lines.
-  if len(line) > 90 and os.path.splitext(curr_file)[1] != ".py":
+  if len(line) > LINE_LIMIT and os.path.splitext(curr_file)[1] != ".py":
     msg = "line too long ({0} > {1})".format(len(line), LINE_LIMIT)
     comments[curr_file].append(
         {"message": msg, "line": curr_line_num})
@@ -188,6 +188,12 @@ def add_misc_comments_for_line(comments, line, curr_file, curr_line_num):
     comments[curr_file].append(
         {"message": "tab used for whitespace", "line": curr_line_num})
 
+  if 'ThriftDebugString' in line:
+    comments[curr_file].append(
+        {"message": ("Please make sure you don't output sensitive data with "
+                     "ThriftDebugString(). If so, use impala::RedactedDebugString() "
+                     "instead."),
+         "line": curr_line_num })
 
 def post_review_to_gerrit(review_input):
   """Post a review to the gerrit patchset. 'review_input' is a ReviewInput JSON object

[impala] 01/02: Upgrade urllib3 to 1.24.2

Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit f18e0d72a7ef472c8084a3c02705be5192743c7d
Author: Jim Apple <jb...@apache.org>
AuthorDate: Sat Apr 3 09:10:07 2021 -0700

    Upgrade urllib3 to 1.24.2
    
    Change-Id: Ib18c76e66db2920e7e05a63b5bcd79854b819cd9
    Reviewed-on: http://gerrit.cloudera.org:8080/17270
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
    Reviewed-by: Zoltan Borok-Nagy <bo...@cloudera.com>
---
 infra/python/deps/requirements.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/infra/python/deps/requirements.txt b/infra/python/deps/requirements.txt
index 42bcf1a..ad6532e 100644
--- a/infra/python/deps/requirements.txt
+++ b/infra/python/deps/requirements.txt
@@ -58,7 +58,7 @@ pywebhdfs == 0.3.2
 requests == 2.20.0
    chardet == 3.0.4
    idna == 2.8
-   urllib3 == 1.21.1
+   urllib3 == 1.24.2
    certifi == 2020.12.5
 sh == 1.11
 six == 1.14.0