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