You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2016/10/27 13:45:58 UTC
[jira] [Created] (IGNITE-4145) "No query result found for request"
exception when running multiple queries concurrently.
Vladimir Ozerov created IGNITE-4145:
---------------------------------------
Summary: "No query result found for request" exception when running multiple queries concurrently.
Key: IGNITE-4145
URL: https://issues.apache.org/jira/browse/IGNITE-4145
Project: Ignite
Issue Type: Bug
Components: SQL
Affects Versions: 1.7
Reporter: Vladimir Ozerov
Assignee: Andrew Mashenkov
Fix For: 1.8
When many queries are executed simultaneously in multi-node cluster, the following exception might appear from time to time:
{code}
Exception in thread "qry-exec-20" javax.cache.CacheException: Failed to fetch data from node: 3432842f-2fa2-44b9-b69b-cadba286d317
at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor$3.fetchNextPage(GridReduceQueryExecutor.java:298)
at org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndex.fetchNextPage(GridMergeIndex.java:229)
at org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndexUnsorted$1.hasNext(GridMergeIndexUnsorted.java:106)
at org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndex$IteratorCursor.next(GridMergeIndex.java:351)
at org.apache.ignite.internal.processors.query.h2.twostep.GridMergeIndex$FetchingCursor.next(GridMergeIndex.java:382)
at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:640)
at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$4.iterator(IgniteH2Indexing.java:1057)
at org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:81)
at org.apache.ignite.yardstick.ringcentral.AdgRunner$QueryExecutor.run(AdgRunner.java:394)
at java.lang.Thread.run(Thread.java:745)
Suppressed: javax.cache.CacheException: Failed to execute map query on the node: c51bc4f2-7038-4df6-88a9-eb87506c2f86, class javax.cache.CacheException:No query result found for request: GridQueryNextPageRequest [qryReqId=93, qry=0, pageSize=1024]
at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.fail(GridReduceQueryExecutor.java:259)
at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.onFail(GridReduceQueryExecutor.java:249)
at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.onMessage(GridReduceQueryExecutor.java:230)
at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor$1.onMessage(GridReduceQueryExecutor.java:178)
at org.apache.ignite.internal.managers.communication.GridIoManager$ArrayListener.onMessage(GridIoManager.java:1900)
at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1080)
at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:708)
at org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:101)
at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:671)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more
{code}
Quick analysis shows that next-page request could possibly arrive before original query message is processed. Need to confirm it with deeper debugging first.
The best way to reproduce it:
1) Generate some data
2) Start several data nodes (e.g. 4)
3) Start client node
4) Concurrently execute multiple SQL queries from the client in different threads.
P.S.: May be cache start message gets delayed in IO manager during start?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)