Ilya Shishkov created IGNITE-20201: -------------------------------------- Summary: Node failure when incorrect names are used for hitrate and histogram metrics configuration Key: IGNITE-20201 URL: https://issues.apache.org/jira/browse/IGNITE-20201 Project: Ignite Issue Type: Improvement Affects Versions: 2.15 Reporter: Ilya Shishkov
There are no metric name validation when we perform hitrate and historgam metrics configuration by means of control script, which can lead to impossibility to restart persistent cluster. How to reproduce: # Start persistent cluster # Just repeat commands from instructions: https://ignite.apache.org/docs/latest/tools/control-script#metric-configure-command {noformat} control.sh —metric —configure-histogram histogram-metric-name 1,2,3 control.sh —metric —configure-hitrate hitrate-metric-name 1000 {noformat} # Deactivate and restart cluster # Start cluster and nodes will fail with following error: {nofromat} [12:44:18,713][SEVERE][main][IgniteKernal%myGrid1] Exception during start processors, node will be stopped and close connections java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 19 at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4606) at java.base/java.lang.String.substring(String.java:2709) at org.apache.ignite.internal.processors.metric.impl.MetricUtils.fromFullName(MetricUtils.java:72) at org.apache.ignite.internal.processors.metric.GridMetricManager.find(GridMetricManager.java:502) at org.apache.ignite.internal.processors.metric.GridMetricManager.onHitRateConfigChanged(GridMetricManager.java:462) at org.apache.ignite.internal.processors.metric.GridMetricManager.access$400(GridMetricManager.java:73) at org.apache.ignite.internal.processors.metric.GridMetricManager$1.lambda$onReadyForRead$0(GridMetricManager.java:269) at org.apache.ignite.internal.processors.metastorage.persistence.InMemoryCachedDistributedMetaStorageBridge.iterate(InMemoryCachedDistributedMetaStorageBridge.java:87) at org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.iterate(DistributedMetaStorageImpl.java:542) at org.apache.ignite.internal.processors.metric.GridMetricManager$1.onReadyForRead(GridMetricManager.java:269) at org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.notifyReadyForRead(DistributedMetaStorageImpl.java:355) at org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.onMetaStorageReadyForRead(DistributedMetaStorageImpl.java:434) at org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl.access$200(DistributedMetaStorageImpl.java:116) at org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageImpl$2.onReadyForRead(DistributedMetaStorageImpl.java:259) at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetastorageReadyForRead(GridCacheDatabaseSharedManager.java:430) at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:877) at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:3094) at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1120) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1725) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1647) at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1089) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:599) at org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) at org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:74) {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)