[
https://issues.apache.org/jira/browse/IGNITE-23238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17883866#comment-17883866
]
Kirill Gusakov commented on IGNITE-23238:
-----------------------------------------
LGTM
> ItNodeTest.testOnReconfigurationErrorListener failed
> ----------------------------------------------------
>
> Key: IGNITE-23238
> URL: https://issues.apache.org/jira/browse/IGNITE-23238
> Project: Ignite
> Issue Type: Bug
> Reporter: Alexander Lapin
> Assignee: Alexander Lapin
> Priority: Major
> Labels: ignite-3
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Test failed with
> {code:java}
> org.opentest4j.AssertionFailedError: expected: <Status[ECATCHUP<10003>: Peer
> int_torel_5004 failed to catch up.]> but was: <Status[OK]> at
> app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
> at
> app//org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
> at
> app//org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
> at
> app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
> at
> app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
> at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
> at
> app//org.apache.ignite.raft.jraft.core.ItNodeTest.testOnReconfigurationErrorListener(ItNodeTest.java:3100)
> {code}
> I believe that it has happened because of double closure state update.
> In case of async (and only async operations) we set the closure.state in
> {code:java}
> if (async) {
> Utils.runClosureInThread(this.node.getOptions().getCommonExecutor(),
> done, Status.OK());
> } {code}
> in NodeImpl.ConfigurationCtx#start
> and later may change the state by calling
> {code:java}
> oldDoneClosure.run(status);{code}
> in NodeImpl.ConfigurationCtx#onCaughtUp
> Second closure state adjustment seems incorrect to me.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)