You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Mikhail Pochatkin (Jira)" <ji...@apache.org> on 2023/02/27 11:54:00 UTC

[jira] [Updated] (IGNITE-18908) Distributed configuration doesn't generate events when the configuration property is updated with the same value

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