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

Reply via email to