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

Mikhail Petrov updated IGNITE-17836:
------------------------------------
    Description: 
GridCache*FailoverSelfTests are flaky:

[https://ci.ignite.apache.org/test/-7019541796655258608?currentProjectId=IgniteTests24Java8&branch=%3Cdefault%3E]

 

Need to find out the root cause of the issue

Example of failures: 


{code:java}
java.lang.AssertionError: Key set size is lesser then the expected size 
[size=77, expSize=100]
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.assertTrue(Assert.java:41)
        at 
org.apache.ignite.testframework.junits.JUnitAssertAware.assertTrue(JUnitAssertAware.java:30)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.check(GridCacheAbstractFailoverSelfTest.java:385)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.testTopologyChange(GridCacheAbstractFailoverSelfTest.java:159)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverTxSelfTest.testOptimisticReadCommittedTxTopologyChange(GridCacheAbstractFailoverTxSelfTest.java:85)
        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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
        at java.base/java.lang.Thread.run(Thread.java:829)
======= Failed test run #2 ==========
java.lang.AssertionError: Key set size is lesser then the expected size 
[size=77, expSize=100]
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.assertTrue(Assert.java:41)
        at 
org.apache.ignite.testframework.junits.JUnitAssertAware.assertTrue(JUnitAssertAware.java:30)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.check(GridCacheAbstractFailoverSelfTest.java:385)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.testTopologyChange(GridCacheAbstractFailoverSelfTest.java:159)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverTxSelfTest.testOptimisticReadCommittedTxTopologyChange(GridCacheAbstractFailoverTxSelfTest.java:85)
        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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
        at java.base/java.lang.Thread.run(Thread.java:829)
{code}

IgniteCache#size() call may be made while the Cache Affinity Version change, 
that follows the completion of rebalance,  is still in process. It can lead to 
the situation when some nodes calculate the local cache size based on the 
updated Affinity version, while others relies on the old one. As a result, the 
IgniteCache#size() value will not match the expected value.

see CacheAffinityChangeMessage
see SizeJob
see IgniteCacheOffheapManagerImpl#cacheEntriesCount(int, boolean, boolean, 
org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion)

  was:
GridCache*FailoverSelfTests are flaky:

[https://ci.ignite.apache.org/test/-7019541796655258608?currentProjectId=IgniteTests24Java8&branch=%3Cdefault%3E]

 

Need to find out the root cause of the issue

Example of failures: 


{code:java}
java.lang.AssertionError: Key set size is lesser then the expected size 
[size=77, expSize=100]
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.assertTrue(Assert.java:41)
        at 
org.apache.ignite.testframework.junits.JUnitAssertAware.assertTrue(JUnitAssertAware.java:30)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.check(GridCacheAbstractFailoverSelfTest.java:385)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.testTopologyChange(GridCacheAbstractFailoverSelfTest.java:159)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverTxSelfTest.testOptimisticReadCommittedTxTopologyChange(GridCacheAbstractFailoverTxSelfTest.java:85)
        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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
        at java.base/java.lang.Thread.run(Thread.java:829)
======= Failed test run #2 ==========
java.lang.AssertionError: Key set size is lesser then the expected size 
[size=77, expSize=100]
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.assertTrue(Assert.java:41)
        at 
org.apache.ignite.testframework.junits.JUnitAssertAware.assertTrue(JUnitAssertAware.java:30)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.check(GridCacheAbstractFailoverSelfTest.java:385)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.testTopologyChange(GridCacheAbstractFailoverSelfTest.java:159)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverTxSelfTest.testOptimisticReadCommittedTxTopologyChange(GridCacheAbstractFailoverTxSelfTest.java:85)
        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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
        at java.base/java.lang.Thread.run(Thread.java:829)
{code}



> GridCacheColocatedFailoverSelfTest.testOptimisticReadCommittedTxTopologyChange
>  is flaky
> ---------------------------------------------------------------------------------------
>
>                 Key: IGNITE-17836
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17836
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.14, 2.15, 2.16, 2.17
>            Reporter: Vyacheslav Koptilin
>            Assignee: Mikhail Petrov
>            Priority: Major
>              Labels: ise
>
> GridCache*FailoverSelfTests are flaky:
> [https://ci.ignite.apache.org/test/-7019541796655258608?currentProjectId=IgniteTests24Java8&branch=%3Cdefault%3E]
>  
> Need to find out the root cause of the issue
> Example of failures: 
> {code:java}
> java.lang.AssertionError: Key set size is lesser then the expected size 
> [size=77, expSize=100]
>       at org.junit.Assert.fail(Assert.java:88)
>       at org.junit.Assert.assertTrue(Assert.java:41)
>       at 
> org.apache.ignite.testframework.junits.JUnitAssertAware.assertTrue(JUnitAssertAware.java:30)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.check(GridCacheAbstractFailoverSelfTest.java:385)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.testTopologyChange(GridCacheAbstractFailoverSelfTest.java:159)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverTxSelfTest.testOptimisticReadCommittedTxTopologyChange(GridCacheAbstractFailoverTxSelfTest.java:85)
>       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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>       at 
> org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> ======= Failed test run #2 ==========
> java.lang.AssertionError: Key set size is lesser then the expected size 
> [size=77, expSize=100]
>       at org.junit.Assert.fail(Assert.java:88)
>       at org.junit.Assert.assertTrue(Assert.java:41)
>       at 
> org.apache.ignite.testframework.junits.JUnitAssertAware.assertTrue(JUnitAssertAware.java:30)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.check(GridCacheAbstractFailoverSelfTest.java:385)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverSelfTest.testTopologyChange(GridCacheAbstractFailoverSelfTest.java:159)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFailoverTxSelfTest.testOptimisticReadCommittedTxTopologyChange(GridCacheAbstractFailoverTxSelfTest.java:85)
>       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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>       at 
> org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> {code}
> IgniteCache#size() call may be made while the Cache Affinity Version change, 
> that follows the completion of rebalance,  is still in process. It can lead 
> to the situation when some nodes calculate the local cache size based on the 
> updated Affinity version, while others relies on the old one. As a result, 
> the IgniteCache#size() value will not match the expected value.
> see CacheAffinityChangeMessage
> see SizeJob
> see IgniteCacheOffheapManagerImpl#cacheEntriesCount(int, boolean, boolean, 
> org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion)



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

Reply via email to