Fixed activate/deactivate hang - Fixes
@@ -1088,6 +1088,14 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
IgniteInternalFuture<Boolean> transitionWaitFut = joinData.transitionWaitFuture();
+ // Notify discovery manager the first to make sure that topology is discovered.
+ // Active flag is not used in managers, so it is safe to pass true.
+ ctx.discovery().onKernalStart(true);
+
+ // Notify IO manager the second so further components can send and receive messages.
+ // Must notify the IO manager before transition state await to make sure IO connection can be established.
+ ctx.io().onKernalStart(true);
+
boolean active;
if (transitionWaitFut != null) {
@@ -1101,12 +1109,6 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
else
active = joinData.active();
- // Notify discovery manager the first to make sure that topology is discovered.
- ctx.discovery().onKernalStart(active);
-
- // Notify IO manager the second so further components can send and receive messages.
- ctx.io().onKernalStart(active);
-
boolean recon = false;
// Callbacks.
