[ 
https://issues.apache.org/jira/browse/IGNITE-19179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mirza Aliev updated IGNITE-19179:
---------------------------------
    Description: 
While https://issues.apache.org/jira/browse/IGNITE-18953 was implementing, 
{{ItClusterManagerTest#testNodeRestart}} started to fail periodically.

 
{noformat}
java.lang.AssertionError: 
Expected: is iterable with items [<ClusterNode 
[id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
address=127.0.0.1:10000, nodeMetadata=null]>, <ClusterNode 
[id=622f46cb-3f34-4aa7-8332-ce0aa90980e8, name=icmt_tnr_10001, 
address=127.0.0.1:10001, nodeMetadata=null]>] in any order
     but: was <[ClusterNode [id=ac994fa6-d2d3-42e4-a247-fc437792b617, 
name=icmt_tnr_10000, address=127.0.0.1:10000, nodeMetadata=null]]>
Expected :is iterable with items [<ClusterNode 
[id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
address=127.0.0.1:10000, nodeMetadata=null]>, <ClusterNode 
[id=622f46cb-3f34-4aa7-8332-ce0aa90980e8, name=icmt_tnr_10001, 
address=127.0.0.1:10001, nod ...Actual   :<[ClusterNode 
[id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
address=127.0.0.1:10000, nodeMetadata=null]]>
<Click to see difference>
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
    at 
org.apache.ignite.internal.cluster.management.ItClusterManagerTest.testNodeRestart(ItClusterManagerTest.java:174)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
    at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at 
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
    at 
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at 
{noformat}
 

>From the log with additional debug logging we can see, that after we call 
>{{waitForLogicalTopology()}} we still write some new topology to 
>{{{}LogicalTopologyImpl#storage{}}}, moreover we write topology that contains 
>only learner node, or even empty topology, which is definitely wrong. Seems 
>that there is some race and topology in {{waitForLogicalTopology()}} is not a 
>final topology after restart, so after that assertion fails, because topology 
>snapshot changes.

  was:
While https://issues.apache.org/jira/browse/IGNITE-18953 was implementing, 
{{ItClusterManagerTest#testNodeRestart}} started to fail periodically.

 
{noformat}
java.lang.AssertionError: 
Expected: is iterable with items [<ClusterNode 
[id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
address=127.0.0.1:10000, nodeMetadata=null]>, <ClusterNode 
[id=622f46cb-3f34-4aa7-8332-ce0aa90980e8, name=icmt_tnr_10001, 
address=127.0.0.1:10001, nodeMetadata=null]>] in any order
     but: was <[ClusterNode [id=ac994fa6-d2d3-42e4-a247-fc437792b617, 
name=icmt_tnr_10000, address=127.0.0.1:10000, nodeMetadata=null]]>
Expected :is iterable with items [<ClusterNode 
[id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
address=127.0.0.1:10000, nodeMetadata=null]>, <ClusterNode 
[id=622f46cb-3f34-4aa7-8332-ce0aa90980e8, name=icmt_tnr_10001, 
address=127.0.0.1:10001, nod ...Actual   :<[ClusterNode 
[id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
address=127.0.0.1:10000, nodeMetadata=null]]>
<Click to see difference>
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
    at 
org.apache.ignite.internal.cluster.management.ItClusterManagerTest.testNodeRestart(ItClusterManagerTest.java:174)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
    at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at 
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
    at 
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at 
{noformat}
 

 

 

>From the log with additional debug logging we can see, that after we call 
>{{waitForLogicalTopology()}} we still write some new topology to 
>{{{}LogicalTopologyImpl#storage{}}}, moreover we write topology that contains 
>only learner node, or even empty topology, which is definitely wrong.


> ItClusterManagerTest#testNodeRestart start to fail after LogicalNode 
> introducing
> --------------------------------------------------------------------------------
>
>                 Key: IGNITE-19179
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19179
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mirza Aliev
>            Priority: Major
>              Labels: ignite-3
>
> While https://issues.apache.org/jira/browse/IGNITE-18953 was implementing, 
> {{ItClusterManagerTest#testNodeRestart}} started to fail periodically.
>  
> {noformat}
> java.lang.AssertionError: 
> Expected: is iterable with items [<ClusterNode 
> [id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
> address=127.0.0.1:10000, nodeMetadata=null]>, <ClusterNode 
> [id=622f46cb-3f34-4aa7-8332-ce0aa90980e8, name=icmt_tnr_10001, 
> address=127.0.0.1:10001, nodeMetadata=null]>] in any order
>      but: was <[ClusterNode [id=ac994fa6-d2d3-42e4-a247-fc437792b617, 
> name=icmt_tnr_10000, address=127.0.0.1:10000, nodeMetadata=null]]>
> Expected :is iterable with items [<ClusterNode 
> [id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
> address=127.0.0.1:10000, nodeMetadata=null]>, <ClusterNode 
> [id=622f46cb-3f34-4aa7-8332-ce0aa90980e8, name=icmt_tnr_10001, 
> address=127.0.0.1:10001, nod ...Actual   :<[ClusterNode 
> [id=ac994fa6-d2d3-42e4-a247-fc437792b617, name=icmt_tnr_10000, 
> address=127.0.0.1:10000, nodeMetadata=null]]>
> <Click to see difference>
>     at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
>     at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
>     at 
> org.apache.ignite.internal.cluster.management.ItClusterManagerTest.testNodeRestart(ItClusterManagerTest.java:174)
>     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
>     at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>     at 
> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
>     at 
> org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
>     at 
> {noformat}
>  
> From the log with additional debug logging we can see, that after we call 
> {{waitForLogicalTopology()}} we still write some new topology to 
> {{{}LogicalTopologyImpl#storage{}}}, moreover we write topology that contains 
> only learner node, or even empty topology, which is definitely wrong. Seems 
> that there is some race and topology in {{waitForLogicalTopology()}} is not a 
> final topology after restart, so after that assertion fails, because topology 
> snapshot changes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to