[ https://issues.apache.org/jira/browse/IGNITE-20201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Shishkov updated IGNITE-20201: ----------------------------------- Description: There are no metric name validation when we perform hitrate and historgam metrics configuration by means of control script. It 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 and activate cluster and nodes will fail with following error: {noformat} [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} *Workaround:* Clean metastorage. was: There are no metric name validation when we perform hitrate and historgam metrics configuration by means of control script. It 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 and activate cluster and nodes will fail with following error: {noformat} [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} > 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: Bug > Affects Versions: 2.15 > Reporter: Ilya Shishkov > Priority: Critical > > There are no metric name validation when we perform hitrate and historgam > metrics configuration by means of control script. It 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 and activate cluster and nodes will fail with following error: > {noformat} > [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} > *Workaround:* > Clean metastorage. -- This message was sent by Atlassian Jira (v8.20.10#820010)