You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Koptilin (JIRA)" <ji...@apache.org> on 2019/03/25 12:35:00 UTC

[jira] [Updated] (IGNITE-11625) AffinityTopologyVersion should be changed on client connect when this client node has new statically configured cache(s).

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

Vyacheslav Koptilin updated IGNITE-11625:
-----------------------------------------
    Description: 
It seems that the optimization introduced by IGNITE-9558 should not be applied in the case when a client node connects to the cluster and has new statically configured caches,
otherwise, the client node can map a transaction to a server node which has not started the required cache yet, and so this behavior results in the following exception:
{noformat}
[ERROR][sys-stripe-16-#62191%baseline.ClientAffinityAssignmentWithBaselineTest3%][G] Failed to execute runnable.
java.lang.AssertionError: Failed to find cache context [cacheId=-567517108, readyTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=1]]
  at org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.unmarshal(IgniteTxEntry.java:938)
  at org.apache.ignite.internal.processors.cache.GridCacheMessage.unmarshalTx(GridCacheMessage.java:446)
  at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxPrepareRequest.finishUnmarshal(GridDistributedTxPrepareRequest.java:436)
  at org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1609)
  at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:586)
  at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
  at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
  at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:109)
  at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
  at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1561)
  at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1189)
  at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127)
  at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1086)
  at org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:550)
  at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
  at java.lang.Thread.run(Thread.java:748)
{noformat}

> AffinityTopologyVersion should be changed on client connect when this client node has new statically configured cache(s).
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-11625
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11625
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.7
>            Reporter: Vyacheslav Koptilin
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>             Fix For: 2.8
>
>
> It seems that the optimization introduced by IGNITE-9558 should not be applied in the case when a client node connects to the cluster and has new statically configured caches,
> otherwise, the client node can map a transaction to a server node which has not started the required cache yet, and so this behavior results in the following exception:
> {noformat}
> [ERROR][sys-stripe-16-#62191%baseline.ClientAffinityAssignmentWithBaselineTest3%][G] Failed to execute runnable.
> java.lang.AssertionError: Failed to find cache context [cacheId=-567517108, readyTopVer=AffinityTopologyVersion [topVer=4, minorTopVer=1]]
>   at org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.unmarshal(IgniteTxEntry.java:938)
>   at org.apache.ignite.internal.processors.cache.GridCacheMessage.unmarshalTx(GridCacheMessage.java:446)
>   at org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxPrepareRequest.finishUnmarshal(GridDistributedTxPrepareRequest.java:436)
>   at org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1609)
>   at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:586)
>   at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
>   at org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
>   at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:109)
>   at org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
>   at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1561)
>   at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1189)
>   at org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127)
>   at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1086)
>   at org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:550)
>   at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)