[
https://issues.apache.org/jira/browse/IGNITE-29223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ignite TC Bot updated IGNITE-29223:
-----------------------------------
Release Note: Metrics: Fixed histogram bounds validation and restored
PageTimestampHistogram configuration after cluster reactivation.
> Fix histogram metric bounds validation
> --------------------------------------
>
> Key: IGNITE-29223
> URL: https://issues.apache.org/jira/browse/IGNITE-29223
> Project: Ignite
> Issue Type: Bug
> Reporter: Nikita Amelchev
> Assignee: Nikita Amelchev
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> {{MetricsMxBean#configureHistogramMetric}} and {{control.sh --metric
> --configure-histogram}} store histogram bounds in the distributed metastorage
> without checking them against the histogram type, so invalid bounds are
> accepted and then fail on every node, while control.sh rejects valid unsorted
> bounds of {{PageTimestampHistogram}}. Besides, stored bounds are not applied
> to {{PageTimestampHistogram}} when it is re-created on cluster activation, so
> its configuration is lost after deactivation.
> Unsorted bounds of a regular histogram (assertions enabled), the configure
> call hangs:
> {noformat}
> java.lang.AssertionError
> at
> org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl$HistogramHolder.<init>(HistogramMetricImpl.java:133)
> at
> org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl.reset(HistogramMetricImpl.java:81)
> at
> org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl.bounds(HistogramMetricImpl.java:86)
> at
> org.apache.ignite.internal.processors.metric.GridMetricManager.onHistogramConfigChanged(GridMetricManager.java:562)
> at
> org.apache.ignite.internal.processors.metric.GridMetricManager$1.lambda$onReadyForRead$8(GridMetricManager.java:309)
> at
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.notifyListeners(DistributedMetaStorageImpl.java:1385)
> at
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.completeWrite(DistributedMetaStorageImpl.java:1180)
> at
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onUpdateMessage(DistributedMetaStorageImpl.java:1085)
> at
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$3.onDiscovery0(GridDiscoveryManager.java:748)
> {noformat}
> Invalid bounds of {{PageTimestampHistogram}}, the configure call succeeds and
> every node logs:
> {noformat}
> [ERROR][disco-notifier-worker-#59][GridMetricManager] Error during histogram
> bounds reconfiguration
> java.lang.IllegalArgumentException: Ouch! Argument is invalid: bounds.length
> > 1
> at
> org.apache.ignite.internal.util.GridArgumentCheck.ensure(GridArgumentCheck.java:111)
> at
> org.apache.ignite.internal.processors.metric.impl.PeriodicHistogramMetricImpl.bounds(PeriodicHistogramMetricImpl.java:114)
> at
> org.apache.ignite.internal.processors.metric.GridMetricManager.onHistogramConfigChanged(GridMetricManager.java:562)
> at
> org.apache.ignite.internal.processors.metric.GridMetricManager$1.lambda$onReadyForRead$8(GridMetricManager.java:309)
> at
> org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.notifyListeners(DistributedMetaStorageImpl.java:1385)
> {noformat}
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)