[ 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} Failure occurs when {{GridMetricManager}} tries to parse entries with incorrect metric names from metastorage: {noformat} metrics.histogram.histogram-metric-name [1, 2, 3] metrics.hitrate.hitrate-metric-name 1000 {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} Failure occurs when {{GridMetricManager}} tries to parse incorrect entries from metastorage: {noformat} metrics.histogram.histogram-metric-name [1, 2, 3] metrics.hitrate.hitrate-metric-name 1000 {noformat} *Workaround:* Clean metastorage. > 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} > Failure occurs when {{GridMetricManager}} tries to parse entries with > incorrect metric names from metastorage: > {noformat} > metrics.histogram.histogram-metric-name [1, 2, 3] > > > metrics.hitrate.hitrate-metric-name 1000 > {noformat} > *Workaround:* > Clean metastorage. -- This message was sent by Atlassian Jira (v8.20.10#820010)