[ 
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)

Reply via email to