[
https://issues.apache.org/jira/browse/IGNITE-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15075014#comment-15075014
]
Alexey Goncharuk commented on IGNITE-2325:
------------------------------------------
The assertion seems to appear when a client node with near cache has sent
prepare request and primary node crashed before the client received a response.
In this case client attempts to remap and tries to add keys to the existing
keys future which is already marked as 'all keys added'.
The proposed solution is to not add keys to the keys future during remap. We
can do so because remap can only happen on first message, when the client node
has not received any responses yet.
> Assertion in optimistic prepare future on client node during server node
> restart when near cache is enabled.
> ------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-2325
> URL: https://issues.apache.org/jira/browse/IGNITE-2325
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 1.4
> Reporter: Alexey Goncharuk
> Assignee: Alexey Goncharuk
> Labels: important
> Fix For: 1.6
>
>
> {code}
> java.lang.AssertionError: null
> at
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFutureAdapter$KeyLockFuture.addLockKey(GridNearOptimisticTxPrepareFutureAdapter.java:182)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.map(GridNearOptimisticTxPrepareFuture.java:546)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.prepare(GridNearOptimisticTxPrepareFuture.java:340)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFuture.prepare0(GridNearOptimisticTxPrepareFuture.java:266)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFutureAdapter.prepareOnTopology(GridNearOptimisticTxPrepareFutureAdapter.java:133)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearOptimisticTxPrepareFutureAdapter$1$1.run(GridNearOptimisticTxPrepareFutureAdapter.java:146)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6453)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:788)
> ~[ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> [ignite-core-1.5.0-b1.jar:1.5.0-b1]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [na:1.8.0_45]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [na:1.8.0_45]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)