Repository: incubator-impala Updated Branches: refs/heads/master 297e23ba9 -> a2805ca6f
IMPALA-5230: fix non-functional impalad under ASAN The bug is that TCMalloc metrics are not initialised under ASAN but other metrics that reference them are created. As soon as a debug webpage tries to access that metric, Impala crashes. The bug was introduced by commit 955b257cfb5: "IMPALA-5073: Part 1: add option to use mmap() for buffer pool". Testing: Started the cluster under ASAN, ran some query tests, checked the /memz and /metrics pages. Change-Id: Ic71fa57e0444f470398e16513e4ba6e7f71565e4 Reviewed-on: http://gerrit.cloudera.org:8080/6694 Reviewed-by: Alex Behm <[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/830889a6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/830889a6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/830889a6 Branch: refs/heads/master Commit: 830889a68709db345002bbf867ea86ac10235e9d Parents: 297e23b Author: Tim Armstrong <[email protected]> Authored: Wed Apr 19 15:11:22 2017 -0700 Committer: Impala Public Jenkins <[email protected]> Committed: Thu Apr 20 02:01:10 2017 +0000 ---------------------------------------------------------------------- be/src/util/memory-metrics.cc | 2 +- be/src/util/memory-metrics.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/830889a6/be/src/util/memory-metrics.cc ---------------------------------------------------------------------- diff --git a/be/src/util/memory-metrics.cc b/be/src/util/memory-metrics.cc index 3f2d198..5f40a69 100644 --- a/be/src/util/memory-metrics.cc +++ b/be/src/util/memory-metrics.cc @@ -73,7 +73,6 @@ Status impala::RegisterMemoryMetrics(MetricGroup* metrics, bool register_jvm_met TcmallocMetric::PHYSICAL_BYTES_RESERVED = metrics->RegisterMetric(new TcmallocMetric::PhysicalBytesMetric( MetricDefs::Get("tcmalloc.physical-bytes-reserved"))); -#endif // Add compound metrics that track totals across TCMalloc and the buffer pool. // total-used should track the total physical memory in use. @@ -86,6 +85,7 @@ Status impala::RegisterMemoryMetrics(MetricGroup* metrics, bool register_jvm_met AggregateMemoryMetric::TOTAL_USED = metrics->RegisterMetric( new SumGauge<uint64_t>(MetricDefs::Get("memory.total-used"), used_metrics)); +#endif if (register_jvm_metrics) { RETURN_IF_ERROR(JvmMetric::InitMetrics(metrics->GetOrCreateChildGroup("jvm"))); } http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/830889a6/be/src/util/memory-metrics.h ---------------------------------------------------------------------- diff --git a/be/src/util/memory-metrics.h b/be/src/util/memory-metrics.h index e058bcb..83de52f 100644 --- a/be/src/util/memory-metrics.h +++ b/be/src/util/memory-metrics.h @@ -39,7 +39,7 @@ class AggregateMemoryMetric { /// The sum of Tcmalloc TOTAL_BYTES_RESERVED and BufferPool SYSTEM_ALLOCATED. /// Approximates the total amount of physical memory consumed by the backend (i.e. not /// including JVM memory), which is either in use by queries or cached by the BufferPool - /// or TcMalloc. + /// or TcMalloc. NULL when running under ASAN. static SumGauge<uint64_t>* TOTAL_USED; };
