[
https://issues.apache.org/jira/browse/IGNITE-7789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16380669#comment-16380669
]
Maxim Muzafarov commented on IGNITE-7789:
-----------------------------------------
Generally this test fails because of method:
{quote}doTestIgniteOperationOnDisconnect(Ignite client, final List<T2<Callable,
C1<Object, Boolean>>> ops)
{quote}
executes operations in this List<> not in that order in which they are put in.
So, for the first case:
1) Assertion error in test-case:
Here we try to invoke operation here [return dfltCache.invoke(10000, new
CacheEntryProcessor<Object, Object,
Object>()|https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java#L341]
and expect that key 10_000 already exists in cache (added in previous
opertation in List), but in some cases it not because of execution order.
2) IgniteCheckedException from CacheProcessor on dynamic cache start
Same situation. For method [public void dataStructureOperationsTest() throws
Exception
|https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java#L97]
we have execution plan:
{quote}OK - test case
[2018-02-27 15:51:05,065][INFO ][async-callable-runner-1][root] Queue creation
[2018-02-27 15:51:05,065][INFO ][async-callable-runner-1][root] Set creation
[2018-02-27 15:51:05,065][INFO ][async-callable-runner-1][root] Atomic creation
FAIL - test case
[2018-02-27 15:52:23,304][INFO ][async-callable-runner-1][root] Atomic creation
[2018-02-27 15:52:23,304][INFO ][async-callable-runner-1][root] Queue creation
[2018-02-27 15:52:23,303][INFO ][async-callable-runner-1][root] Set creation
{quote}
and also number of default backups for [AtomicConfiguration
|https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/configuration/AtomicConfiguration.java#L32]
and [CollectionConfiguration
|https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/configuration/CollectionConfiguration.java#L47]
are different:
{quote}CollectionConfiguration we have default backup = 0;
AtomicConfiguration we have DFLT_BACKUPS = 1;
{quote}
I suggest to rewrite hole test in the correct way, but I think this is for
another task.
> Ignite Client Nodes: failed test
> IgniteClientReconnectApiExceptionTest.testErrorOnDisconnect()
> ----------------------------------------------------------------------------------------------
>
> Key: IGNITE-7789
> URL: https://issues.apache.org/jira/browse/IGNITE-7789
> Project: Ignite
> Issue Type: Bug
> Reporter: Sergey Chugunov
> Assignee: Maxim Muzafarov
> Priority: Major
> Labels: MakeTeamcityGreenAgain
> Fix For: 2.5
>
>
> Test is flaky, success rate: 47.9%, test history is
> [here|https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=-3790177050933093125&tab=testDetails].
> May fail in two different ways.
> *1 Assertion error in test code*
> Rarely reproducible locally.
> {noformat}
> Caused by: class
> org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException:
> Failed to update keys (retry update if possible).: [10000]
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.onPrimaryError(GridNearAtomicAbstractUpdateFuture.java:397)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.onPrimaryResponse(GridNearAtomicSingleUpdateFuture.java:253)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateResponse(GridDhtAtomicCache.java:3073)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$500(GridDhtAtomicCache.java:130)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$6.apply(GridDhtAtomicCache.java:285)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$6.apply(GridDhtAtomicCache.java:280)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1060)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1554)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1182)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1089)
> at
> org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:499)
> at java.lang.Thread.run(Thread.java:745)
> Suppressed: class org.apache.ignite.IgniteCheckedException: Failed to
> update keys on primary node.
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.UpdateErrors.addFailedKeys(UpdateErrors.java:124)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateResponse.addFailedKeys(GridNearAtomicUpdateResponse.java:342)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1785)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1628)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:3055)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$400(GridDhtAtomicCache.java:130)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:266)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:261)
> ... 12 more
> Suppressed: java.lang.AssertionError: Assertion error on search row:
> org.apache.ignite.internal.processors.cache.tree.SearchRow@511c0beb
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1633)
> at
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1199)
> at
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:345)
> at
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:1767)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2420)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update(GridDhtAtomicCache.java:1883)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1736)
> ... 17 more
> Caused by: junit.framework.AssertionFailedError
> at junit.framework.Assert.fail(Assert.java:55)
> at junit.framework.Assert.assertTrue(Assert.java:22)
> at junit.framework.Assert.assertTrue(Assert.java:31)
> at junit.framework.TestCase.assertTrue(TestCase.java:201)
> at
> org.apache.ignite.internal.IgniteClientReconnectApiExceptionTest$13$2.process(IgniteClientReconnectApiExceptionTest.java:344)
> at
> org.apache.ignite.internal.processors.cache.EntryProcessorResourceInjectorProxy.process(EntryProcessorResourceInjectorProxy.java:68)
> at
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.runEntryProcessor(GridCacheMapEntry.java:5142)
> at
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.call(GridCacheMapEntry.java:4550)
> at
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.call(GridCacheMapEntry.java:4367)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Invoke.invokeClosure(BPlusTree.java:3051)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Invoke.access$6200(BPlusTree.java:2945)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invokeDown(BPlusTree.java:1711)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1600)
> {noformat}
> *2 IgniteCheckedException from CacheProcessor on dynamic cache start*
> Easily reproducible locally.
> {noformat}
> class org.apache.ignite.IgniteCheckedException: Backups mismatch for caches
> related to the same group [groupName=default-ds-group,
> existingCache=ignite-sys-atomic-cache@default-ds-group, existingBackups=1,
> startingCache=datastructures_ATOMIC_PARTITIONED_0@default-ds-group,
> startingBackups=0]
> at
> org.apache.ignite.internal.processors.cache.GridCacheUtils.validateCacheGroupsAttributesMismatch(GridCacheUtils.java:998)
> at
> org.apache.ignite.internal.processors.cache.ClusterCachesInfo.validateCacheGroupConfiguration(ClusterCachesInfo.java:1615)
> at
> org.apache.ignite.internal.processors.cache.ClusterCachesInfo.validateStartCacheConfiguration(ClusterCachesInfo.java:1569)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.initiateCacheChanges(GridCacheProcessor.java:3160)
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.dynamicStartCache(GridCacheProcessor.java:2773)
> at
> org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor.compatibleCache(DataStructuresProcessor.java:905)
> at
> org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor.getCollection(DataStructuresProcessor.java:1031)
> at
> org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor.set(DataStructuresProcessor.java:1471)
> at org.apache.ignite.internal.IgniteKernal.set(IgniteKernal.java:3733)
> at
> org.apache.ignite.internal.IgniteClientReconnectApiExceptionTest$3.call(IgniteClientReconnectApiExceptionTest.java:152)
> at
> org.apache.ignite.testframework.GridTestUtils$7.run(GridTestUtils.java:979)
> at
> org.apache.ignite.testframework.GridTestUtils$9.call(GridTestUtils.java:1275)
> at
> org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:86)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)