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)