You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2016/10/18 16:43:53 UTC
[30/32] incubator-impala git commit: IMPALA-4253:
impala-server.backends.client-cache.total-clients shows negative value
IMPALA-4253: impala-server.backends.client-cache.total-clients shows negative value
Fixed double decrement in case a cached connection is broken
and cannot be re-created.
Change-Id: Ic9e28055cb232cdb543c4c9f05a558ab0f73f777
Reviewed-on: http://gerrit.cloudera.org:8080/4668
Reviewed-by: Juan Yu <jy...@cloudera.com>
Tested-by: Internal 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/080a6784
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/080a6784
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/080a6784
Branch: refs/heads/hadoop-next
Commit: 080a67848b3f96eb49cdaab14f32eba8091a4320
Parents: 5a91964
Author: Juan Yu <jy...@cloudera.com>
Authored: Fri Oct 7 14:57:24 2016 -0700
Committer: Internal Jenkins <cl...@gerrit.cloudera.org>
Committed: Tue Oct 18 09:29:31 2016 +0000
----------------------------------------------------------------------
be/src/runtime/client-cache.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/080a6784/be/src/runtime/client-cache.cc
----------------------------------------------------------------------
diff --git a/be/src/runtime/client-cache.cc b/be/src/runtime/client-cache.cc
index 155474c..578ef29 100644
--- a/be/src/runtime/client-cache.cc
+++ b/be/src/runtime/client-cache.cc
@@ -86,12 +86,16 @@ Status ClientCacheHelper::ReopenClient(ClientFactory factory_method,
// clean up internal buffers it reopens. To work around this issue, create a new client
// instead.
ClientKey old_client_key = *client_key;
- if (metrics_enabled_) total_clients_metric_->Increment(-1);
Status status = CreateClient(client_impl->address(), factory_method, client_key);
// Only erase the existing client from the map if creation of the new one succeeded.
// This helps to ensure the proper accounting of metrics in the presence of
// re-connection failures (the original client should be released as usual).
if (status.ok()) {
+ // CreateClient() will increment total_clients_metric_ if succeed.
+ if (metrics_enabled_) {
+ total_clients_metric_->Increment(-1);
+ DCHECK_GE(total_clients_metric_->value(), 0);
+ }
lock_guard<mutex> lock(client_map_lock_);
client_map_.erase(client);
} else {