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

Mikhail Pochatkin updated IGNITE-18908:
---------------------------------------
    Description: 
Steps to reproduce:

Add the following code to 
org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest#testCfgGapWithoutData

 
{code:java}
IgniteImpl ignite = startNode(0);
Integer value = ignite.clusterConfiguration()
        .getConfiguration(RocksDbStorageEngineConfiguration.KEY)
        .flushDelayMillis().value();

ignite.clusterConfiguration()
        .getConfiguration(RocksDbStorageEngineConfiguration.KEY)
        .flushDelayMillis().update(value).join();

stopNode(0); {code}
Revision of the cluster configuration will be changed, but events will not be 
generated. So nodes joining the cluster will be unable to update their version 
of the configuration and the recovery will not be completed. 
{code:java}
// Recovery future must be created before configuration listeners are triggered.
CompletableFuture<?> recoveryFuture = RecoveryCompletionFutureFactory.create(
        clusterCfgMgr,
        fut -> new ConfigurationCatchUpListener(cfgStorage, fut, LOG)
)  {code}
 

  was:
Steps to reproduce:

Add the following code to 
org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest#testCfgGapWithoutData

 
{code:java}
IgniteImpl ignite = startNode(0);
Integer value = ignite.clusterConfiguration()
        .getConfiguration(RocksDbStorageEngineConfiguration.KEY)
        .flushDelayMillis().value();

ignite.clusterConfiguration()
        .getConfiguration(RocksDbStorageEngineConfiguration.KEY)
        .flushDelayMillis().update(value);

stopNode(0); {code}
Revision of the cluster configuration will be changed, but events will not be 
generated. So nodes joining the cluster will be unable to update their version 
of the configuration and the recovery will not be completed. 
{code:java}
// Recovery future must be created before configuration listeners are triggered.
CompletableFuture<?> recoveryFuture = RecoveryCompletionFutureFactory.create(
        clusterCfgMgr,
        fut -> new ConfigurationCatchUpListener(cfgStorage, fut, LOG)
)  {code}
 


> Distributed configuration doesn't generate events when the configuration 
> property is updated with the same value
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-18908
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18908
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Ivan Gagarkin
>            Priority: Critical
>              Labels: ignite-3
>
> Steps to reproduce:
> Add the following code to 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest#testCfgGapWithoutData
>  
> {code:java}
> IgniteImpl ignite = startNode(0);
> Integer value = ignite.clusterConfiguration()
>         .getConfiguration(RocksDbStorageEngineConfiguration.KEY)
>         .flushDelayMillis().value();
> ignite.clusterConfiguration()
>         .getConfiguration(RocksDbStorageEngineConfiguration.KEY)
>         .flushDelayMillis().update(value).join();
> stopNode(0); {code}
> Revision of the cluster configuration will be changed, but events will not be 
> generated. So nodes joining the cluster will be unable to update their 
> version of the configuration and the recovery will not be completed. 
> {code:java}
> // Recovery future must be created before configuration listeners are 
> triggered.
> CompletableFuture<?> recoveryFuture = RecoveryCompletionFutureFactory.create(
>         clusterCfgMgr,
>         fut -> new ConfigurationCatchUpListener(cfgStorage, fut, LOG)
> )  {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to