You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Magda (JIRA)" <ji...@apache.org> on 2015/08/13 12:22:46 UTC

[jira] [Updated] (IGNITE-1239) Cache partition iterator throws exception when concurrent rebalancing is running

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

Denis Magda updated IGNITE-1239:
--------------------------------
    Attachment: ignite-1239-2.patch

> Cache partition iterator throws exception when concurrent rebalancing is running
> --------------------------------------------------------------------------------
>
>                 Key: IGNITE-1239
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1239
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>            Reporter: Alexey Goncharuk
>            Assignee: Denis Magda
>         Attachments: ignite-1239-2.patch, ignite-1239.patch
>
>
> I observed this exception when IgniteRDD was iterating over partition and two new nodes have joined:
> {code}
> Caused by: class org.apache.ignite.IgniteCheckedException: Query execution failed: GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=org.apache.ignite.internal.processors.cache.IgniteCacheProxy$1@6490c94c, part=138, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=10, maxTime=10, avgTime=10.0, execs=1, fails=1, executed=true], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepPortable=false, subjId=9cdc9751-c6ec-43eb-968a-e941f2a1a8cd, taskHash=0], rdc=null, trans=null]
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.checkError(GridCacheQueryFutureAdapter.java:245)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.internalIterator(GridCacheQueryFutureAdapter.java:303)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:156)
> 	... 17 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute query on node [query=GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, clause=null, filter=org.apache.ignite.internal.processors.cache.IgniteCacheProxy$1@6490c94c, part=138, incMeta=false, metrics=GridCacheQueryMetricsAdapter [minTime=0, maxTime=0, avgTime=0.0, execs=0, fails=0, executed=false], pageSize=1024, timeout=0, keepAll=true, incBackups=false, dedup=false, prj=null, keepPortable=false, subjId=9cdc9751-c6ec-43eb-968a-e941f2a1a8cd, taskHash=0], rdc=null, trans=null], nodeId=963d0e35-7805-4b6d-8d64-22cce84e35f2]
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.onPage(GridCacheQueryFutureAdapter.java:370)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryResponse(GridCacheDistributedQueryManager.java:377)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.access$000(GridCacheDistributedQueryManager.java:44)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$1.apply(GridCacheDistributedQueryManager.java:74)
> 	at org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$1.apply(GridCacheDistributedQueryManager.java:72)
> 	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:534)
> 	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:240)
> 	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:48)
> 	at org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1026)
> 	at org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2256)
> 	at org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:946)
> 	at org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:60)
> 	at org.apache.ignite.internal.managers.communication.GridIoManager$6.run(GridIoManager.java:915)
> 	... 3 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Partition can't be reserved
> 	at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6808)
> {code}
> The issue is that query request was sent on a backup node and by the time request has arrived, the partition was already evicted, which resulted in "Partition cannot be reserved" exception. We should automatically retry if this exception is encountered.
> I believe we have logic that retries, but it looks like there is a bug in that logic.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)