[ https://issues.apache.org/jira/browse/IGNITE-8897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Chugunov updated IGNITE-8897: ------------------------------------ Remaining Estimate: 72h Original Estimate: 72h > Node with longer BaselineHistory joining the cluster causes cluster stopping > ---------------------------------------------------------------------------- > > Key: IGNITE-8897 > URL: https://issues.apache.org/jira/browse/IGNITE-8897 > Project: Ignite > Issue Type: Bug > Components: persistence > Affects Versions: 2.5 > Reporter: Sergey Chugunov > Assignee: Sergey Chugunov > Priority: Critical > Fix For: 2.7 > > Original Estimate: 72h > Remaining Estimate: 72h > > There is no array index boundary check in code verifying BaselineHistory on > new node join so it may end up with ArrayIndexOutOfBoundsException, exception > stack trace looks like this (failure handler is configured): > {noformat} > [org.apache.ignite.Ignite] Critical system error detected. Will be handled > accordingly to configured handler [hnd=class > o.a.i.failure.StopNodeOrHaltFailureHandler, failureCtx=FailureContext > [type=SYSTEM_WORKER_TERMINATION, err=java.lang.IndexOutOfBoundsException: > Index: 17, Size: 17]] > java.lang.IndexOutOfBoundsException: Index: 17, Size: 17 > at java.util.ArrayList.rangeCheck(ArrayList.java:653) > at java.util.ArrayList.get(ArrayList.java:429) > at > org.apache.ignite.internal.processors.cluster.BaselineTopologyHistory.isCompatibleWith(BaselineTopologyHistory.java:97) > at > org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.validateNode(GridClusterStateProcessor.java:981) > at > org.apache.ignite.internal.managers.GridManagerAdapter$1.validateNode(GridManagerAdapter.java:566) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processJoinRequestMessage(ServerImpl.java:3629) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2736) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2536) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:6775) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2621) > at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) > {noformat} > We need to check bltHistory size and if node joins with incorrect bltHistory > we should refuse the join. -- This message was sent by Atlassian JIRA (v7.6.3#76005)