[
https://issues.apache.org/jira/browse/DRILL-5242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15854772#comment-15854772
]
ASF GitHub Bot commented on DRILL-5242:
---------------------------------------
Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/742#discussion_r99684283
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/OperatorWrapper.java
---
@@ -163,11 +165,18 @@ public String getMetricsTable() {
null);
final Number[] values = new Number[metricNames.length];
+ //Track new/Unknown Metrics
+ final Set<Integer> unknownMetrics = new TreeSet<Integer>();
for (final MetricValue metric : op.getMetricList()) {
- if (metric.hasLongValue()) {
- values[metric.getMetricId()] = metric.getLongValue();
- } else if (metric.hasDoubleValue()) {
- values[metric.getMetricId()] = metric.getDoubleValue();
+ if (metric.getMetricId() < metricNames.length) {
+ if (metric.hasLongValue()) {
+ values[metric.getMetricId()] = metric.getLongValue();
+ } else if (metric.hasDoubleValue()) {
+ values[metric.getMetricId()] = metric.getDoubleValue();
+ }
+ } else {
+ //Tracking unknown metric IDs
+ unknownMetrics.add(metric.getMetricId());
--- End diff --
Will this work? We leave the metric unset, then iterate over them in the
following loop. Also, we build the unknownMetrics set, but never use it.
Suggestion: if the metric is not known, just set its value to 0, and log a
message to the log file.
This situation occurs only when 1) opening an old profile with metrics that
no longer exist, or 2) when adding a metric but not registering it properly.
Note that this code does not handle the case where the metric is not
registered (the metric names is null.)
For the external sort, the problem occurred because we have two sets of
metric enums (two implementations) but only one registry of names. The fix was
to keep the old and new ones in sync.
> The UI breaks when trying to render profiles having unknown metrics
> -------------------------------------------------------------------
>
> Key: DRILL-5242
> URL: https://issues.apache.org/jira/browse/DRILL-5242
> Project: Apache Drill
> Issue Type: Bug
> Components: Web Server
> Affects Versions: 1.9.0
> Reporter: Kunal Khatua
> Assignee: Kunal Khatua
> Fix For: 1.10.0
>
>
> When profiles are generated using a fork of Drill that has introduced new
> metrics, the server of the parent branch will fail in rendering the operator
> metrics correctly.
> The workaround should be to simply skip unknown metrics.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)