Mirza Aliev created IGNITE-22119:
------------------------------------
Summary: Fix start of partial nodes from ItIgniteNodeRestartTest
and ItIgniteDistributionZoneManagerNodeRestartTest
Key: IGNITE-22119
URL: https://issues.apache.org/jira/browse/IGNITE-22119
Project: Ignite
Issue Type: Improvement
Reporter: Mirza Aliev
h3. Motivation
After https://issues.apache.org/jira/browse/IGNITE-22071 is implemented, there
is a couple of places where we explicitly start components for the test
purposes, so node could start only needed components. In that code, we have
some common pattern like
{code:java}
for (IgniteComponent component : otherComponents) {
component.start();
components.add(component);
} {code}
In the review phase of https://issues.apache.org/jira/browse/IGNITE-22071 it
was proposed to wait here for component to be started.
The problems is that in the common node start you have to call
{{{}metaStorageMgr.notifyRevisionUpdateListenerOnStart(){}}}, so some
components (like {{DistributionZoneManager }}could proceed with its logic,
because it waits for some VersionedValues)
{code:java}
CompletableFuture<Void> startupConfigurationUpdate =
notifyConfigurationListeners();
CompletableFuture<Void> startupRevisionUpdate =
metaStorageMgr.notifyRevisionUpdateListenerOnStart();
return CompletableFuture.allOf(startupConfigurationUpdate,
startupRevisionUpdate, startFuture) {code}
but in this partial node you wait for node to be started without calling
{{{}notifyRevisionUpdateListenerOnStart{}}}, so it can't start. At lease this
is the root cause for {{{}ItIgniteDistributionZoneManagerNodeRestartTest{}}}. I
bet the problem is the same for {{ItIgniteNodeRestartTest}}
h3. Definition of done
Fix ItIgniteNodeRestartTest and ItIgniteDistributionZoneManagerNodeRestartTest
partial node starts, so async start of components is actually waited.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)