[ https://issues.apache.org/jira/browse/IGNITE-13348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Amelchev Nikita updated IGNITE-13348: ------------------------------------- Fix Version/s: 2.13 (was: 2.12) > Creating IgniteAtomicLong from the client node may hang. > -------------------------------------------------------- > > Key: IGNITE-13348 > URL: https://issues.apache.org/jira/browse/IGNITE-13348 > Project: Ignite > Issue Type: Bug > Reporter: Vyacheslav Koptilin > Assignee: Vyacheslav Koptilin > Priority: Major > Fix For: 2.13 > > Attachments: DataStructuresInitializationTest.java > > Time Spent: 10m > Remaining Estimate: 0h > > It looks like, the data structure processor does not properly initialize when > a client node connects to a cluster that changes its own state (state > transition from the inactive state to active). > reproducer attached. > *UPDATE* > It seems to me, the root cause of the issue is that {{joinFut}} is always > completed with {{false}}. > {code:java|title=GridClusterStateProcessor.java} > /** {@inheritDoc} */ > @Override public void onStateFinishMessage(ChangeGlobalStateFinishMessage > msg) { > DiscoveryDataClusterState discoClusterState = globalState; > if (msg.requestId().equals(discoClusterState.transitionRequestId())) { > ... > TransitionOnJoinWaitFuture joinFut = this.joinFut; > if (joinFut != null) > joinFut.onDone(false); > ... > } > else > U.warn(log, "Received state finish message with unexpected ID: " > + msg); > } > {code} > On the other hand, this value is used to determine the state of the cluster > when a new node joins the cluster > {code:java|title=IgniteKernal.java} > public void start( > DiscoveryLocalJoinData joinData = ctx.discovery().localJoin(); > IgniteInternalFuture<Boolean> transitionWaitFut = > joinData.transitionWaitFuture(); > ... > boolean active; > if (transitionWaitFut != null) { > if (log.isInfoEnabled()) { > log.info("Join cluster while cluster state transition is > in progress, waiting when transition finish."); > } > active = transitionWaitFut.get(); > } > else > active = joinData.active(); > startTimer.finishGlobalStage("Await transition"); > ... > } > {code} > User list discussion: > http://apache-ignite-users.70518.x6.nabble.com/Ignite-client-node-hangs-while-IgniteAtomicLong-is-created-tp33537.html -- This message was sent by Atlassian Jira (v8.20.1#820001)