[jira] [Created] (IGNITE-4145) "No query result found for request" exception when running multiple queries concurrently.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-4145) "No query result found for request" exception when running multiple queries concurrently.

Anton Vinogradov (Jira)
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)