IMPALA-5940: Avoid log spew by using Status::Expected() This change converts two more callers of Status() to Status::Expected() to avoid log spew and the overhead of stack crawling. These two call sites can easily fill the log when there is any network issue.
Testing done: Ran concurrent TPC-DS workload with 256 users and verified the log spew is not there. Change-Id: I87493394074a7fdb4e912f4ab2436dd7050d45b3 Reviewed-on: http://gerrit.cloudera.org:8080/8255 Reviewed-by: Michael Ho <[email protected]> Tested-by: Impala Public Jenkins Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/dae5eb8d Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/dae5eb8d Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/dae5eb8d Branch: refs/heads/master Commit: dae5eb8d86b4fc2d1196b20d125254f15870b2e7 Parents: 0290e92 Author: Michael Ho <[email protected]> Authored: Tue Oct 10 17:55:20 2017 -0700 Committer: Impala Public Jenkins <[email protected]> Committed: Thu Oct 12 01:34:13 2017 +0000 ---------------------------------------------------------------------- be/src/rpc/thrift-client.cc | 9 +++++++-- be/src/service/impala-server.cc | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/dae5eb8d/be/src/rpc/thrift-client.cc ---------------------------------------------------------------------- diff --git a/be/src/rpc/thrift-client.cc b/be/src/rpc/thrift-client.cc index d4d246b..085e92e 100644 --- a/be/src/rpc/thrift-client.cc +++ b/be/src/rpc/thrift-client.cc @@ -69,8 +69,13 @@ Status ThriftClientImpl::Open() { VLOG(1) << "Error closing socket to: " << address_ << ", ignoring (" << e.what() << ")"; } - return Status(Substitute("Couldn't open transport for $0 ($1)", - lexical_cast<string>(address_), e.what())); + // In certain cases in which the remote host is overloaded, this failure can + // happen quite frequently. Let's print this error message without the stack + // trace as there aren't many callers of this function. + const string& err_msg = Substitute("Couldn't open transport for $0 ($1)", + lexical_cast<string>(address_), e.what()); + VLOG(1) << err_msg; + return Status::Expected(err_msg); } return Status::OK(); } http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/dae5eb8d/be/src/service/impala-server.cc ---------------------------------------------------------------------- diff --git a/be/src/service/impala-server.cc b/be/src/service/impala-server.cc index 9574fb8..50fe25e 100644 --- a/be/src/service/impala-server.cc +++ b/be/src/service/impala-server.cc @@ -1169,8 +1169,8 @@ void ImpalaServer::ReportExecStatus( // cancellation is happening). Return an error to the caller to get it to stop. const string& err = Substitute("ReportExecStatus(): Received report for unknown " "query ID (probably closed or cancelled): $0", PrintId(params.query_id)); - Status(TErrorCode::INTERNAL_ERROR, err).SetTStatus(&return_val); - //VLOG_QUERY << err; + VLOG(1) << err; + Status::Expected(err).SetTStatus(&return_val); return; } request_state->coord()->UpdateBackendExecStatus(params).SetTStatus(&return_val);
