[ 
https://issues.apache.org/jira/browse/IGNITE-15724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vyacheslav Koptilin updated IGNITE-15724:
-----------------------------------------
    Description: 
Currently, when the {{MetaStorageManager}} is started, the metastorage raft 
group is reduced to online nodes that satisfies to the 
{{metaStorageNodesContainsLocPred}}.
{code:java}
String[] metastorageNodes = 
this.locCfgMgr.configurationRegistry().getConfiguration(NodeConfiguration.KEY).metastorageNodes().value();

Predicate<ClusterNode> metaStorageNodesContainsLocPred =
    clusterNode -> Arrays.asList(metastorageNodes).contains(clusterNode.name());

...
        
List<ClusterNode> metaStorageMembers = 
clusterNetSvc.topologyService().allMembers().stream()
    .filter(metaStorageNodesContainsLocPred)
    .collect(Collectors.toList());
{code}
That is actually a subset of required nodes. In that case, only the first node 
creates the metastorage raft group, and the second one will be rejected with 
the following messages:
{noformat}
[WARNING][%ITIgnitionTest_testNodesStartWithBootstrapConfiguration_3344%JRaft-Request-Processor-27][NodeImpl]
 Node <metastorage_raft_group/172.24.144.1:3344> ignore PreVoteRequest from 
172.24.144.1:3345 as it is not in conf <ConfigurationEntry [id=LogId [index=1, 
term=1], conf=172.24.144.1:3344, oldConf=]>.
[WARNING][%ITIgnitionTest_testNodesStartWithBootstrapConfiguration_3345%JRaft-Response-Processor-1][NodeImpl]
 Node <metastorage_raft_group/172.24.144.1:3345> received invalid 
PreVoteResponse from 172.24.144.1:3344, term 1, expect=0.
{noformat}
It seems that this issue cannot be properly fixed until is IGNITE-14414 is 
implemented. For now, we can just prohibit creating a metastorage group greater 
than one node.

> MetastorageManager uses incorrect predicate in order to create corresponding 
> raft group service
> -----------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-15724
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15724
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vyacheslav Koptilin
>            Priority: Critical
>              Labels: ignite-3
>             Fix For: 3.0.0-alpha4
>
>
> Currently, when the {{MetaStorageManager}} is started, the metastorage raft 
> group is reduced to online nodes that satisfies to the 
> {{metaStorageNodesContainsLocPred}}.
> {code:java}
> String[] metastorageNodes = 
> this.locCfgMgr.configurationRegistry().getConfiguration(NodeConfiguration.KEY).metastorageNodes().value();
> Predicate<ClusterNode> metaStorageNodesContainsLocPred =
>     clusterNode -> 
> Arrays.asList(metastorageNodes).contains(clusterNode.name());
> ...
>         
> List<ClusterNode> metaStorageMembers = 
> clusterNetSvc.topologyService().allMembers().stream()
>     .filter(metaStorageNodesContainsLocPred)
>     .collect(Collectors.toList());
> {code}
> That is actually a subset of required nodes. In that case, only the first 
> node creates the metastorage raft group, and the second one will be rejected 
> with the following messages:
> {noformat}
> [WARNING][%ITIgnitionTest_testNodesStartWithBootstrapConfiguration_3344%JRaft-Request-Processor-27][NodeImpl]
>  Node <metastorage_raft_group/172.24.144.1:3344> ignore PreVoteRequest from 
> 172.24.144.1:3345 as it is not in conf <ConfigurationEntry [id=LogId 
> [index=1, term=1], conf=172.24.144.1:3344, oldConf=]>.
> [WARNING][%ITIgnitionTest_testNodesStartWithBootstrapConfiguration_3345%JRaft-Response-Processor-1][NodeImpl]
>  Node <metastorage_raft_group/172.24.144.1:3345> received invalid 
> PreVoteResponse from 172.24.144.1:3344, term 1, expect=0.
> {noformat}
> It seems that this issue cannot be properly fixed until is IGNITE-14414 is 
> implemented. For now, we can just prohibit creating a metastorage group 
> greater than one node.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to