[
https://issues.apache.org/jira/browse/IGNITE-23254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mikhail Efremov reassigned IGNITE-23254:
----------------------------------------
Assignee: (was: Mikhail Efremov)
> ItReplicaLifecycleTest throws AssertionErrors on zone replicas stopping
> -----------------------------------------------------------------------
>
> Key: IGNITE-23254
> URL: https://issues.apache.org/jira/browse/IGNITE-23254
> Project: Ignite
> Issue Type: Bug
> Reporter: Mikhail Efremov
> Priority: Major
> Labels: ignite-3
>
> *Description*
> {{ItReplicaLifecycleTest}} is known as flaky test class (e.g. IGNITE-23131),
> this ticket is about the case when we have issues on replicas stopping issues:
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_IntegrationTests_RunAllOther/8481261?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildTestsSection=true&expandBuildProblemsSection=true&expandBuildChangesSection=true
> We can see that the flaky test for reproduction is
> {{testTableReplicaListenersCreationAfterRebalance}}, on a local machine it
> fails with rate ~25% that is high. The reason is the same:
> {code:java}
> There are replicas alive [replicas=[4_part_0]]
> java.lang.AssertionError: There are replicas alive [replicas=[4_part_0]]
> at
> org.apache.ignite.internal.replicator.ReplicaManager.lambda$stopAsync$34(ReplicaManager.java:1053)
> at
> org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:614)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at
> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
> at
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
> at
> org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:612)
> at
> org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:635)
> at
> org.apache.ignite.internal.replicator.ReplicaManager.stopAsync(ReplicaManager.java:1059)
> at
> org.apache.ignite.internal.util.IgniteUtils.lambda$stopAsync$6(IgniteUtils.java:1216)
> at
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at
> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
> at
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:550)
> at
> java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
> at
> java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:517)
> at
> org.apache.ignite.internal.util.IgniteUtils.stopAsync(IgniteUtils.java:1222)
> at
> org.apache.ignite.internal.util.IgniteUtils.stopAsync(IgniteUtils.java:1264)
> at
> org.apache.ignite.internal.partition.replicator.ItReplicaLifecycleTest$Node.stop(ItReplicaLifecycleTest.java:1371)
> at java.base/java.util.HashMap$Values.forEach(HashMap.java:977)
> at
> org.apache.ignite.internal.partition.replicator.ItReplicaLifecycleTest.after(ItReplicaLifecycleTest.java:312)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at
> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
> at
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at
> java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at
> java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
> at
> java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
> at
> java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:699)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
> at
> java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274)
> at
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
> at
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at
> java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at
> java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
> {code}
> *Motivation*
> Tests shouldn't throw {{AssertionError}} s.
> *Definition of Done*
> {{testTableReplicaListenersCreationAfterRebalance}} should pass in repeated
> manner.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)