You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pinot.apache.org by GitBox <gi...@apache.org> on 2019/01/16 19:49:36 UTC

[GitHub] jamesyfshao opened a new issue #3698: server query error that seems to caused by improper timeout handling

jamesyfshao opened a new issue #3698: server query error that seems to caused by improper timeout handling
URL: https://github.com/apache/incubator-pinot/issues/3698
 
 
   Hi 
   
   we are seeing some exception in our running service when issue a query to a large table:
   
   `
   2019-01-16 02:03:14 ERROR ServerQueryExecutorV1Impl:172 - Exception processing requestId 8229
   java.lang.RuntimeException: Caught exception while running CombinePlanNode.
           at com.linkedin.pinot.core.plan.CombinePlanNode.run(CombinePlanNode.java:105)
           at com.linkedin.pinot.core.plan.InstanceResponsePlanNode.run(InstanceResponsePlanNode.java:35)
           at com.linkedin.pinot.core.plan.GlobalPlanImplV0.execute(GlobalPlanImplV0.java:42)
           at com.linkedin.pinot.core.query.executor.ServerQueryExecutorV1Impl.processQuery(ServerQueryExecutorV1Impl.java:159)
           at com.linkedin.pinot.core.query.scheduler.QueryScheduler.processQueryAndSerialize(QueryScheduler.java:127)
           at com.linkedin.pinot.core.query.scheduler.QueryScheduler.lambda$createQueryFutureTask$0(QueryScheduler.java:112)
           at java.util.concurrent.FutureTask.run(FutureTask.java:266)
           at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
           at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108)
           at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41)
           at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
           at java.lang.Thread.run(Thread.java:748)
   Caused by: java.util.concurrent.TimeoutException
           at java.util.concurrent.FutureTask.get(FutureTask.java:205)
           at com.linkedin.pinot.core.plan.CombinePlanNode.run(CombinePlanNode.java:96)
           ... 13 more
   `
   
   The broker will return this exception message to client. Looking at the server side code that handles  this part of logics:
   https://github.com/apache/incubator-pinot/blob/285649fee6893b1ba49ea5af545306b56569821e/pinot-core/src/main/java/com/linkedin/pinot/core/plan/CombinePlanNode.java#L105-L127
   It seems that this timeout exception might be expected if the server is busy or the query need to scan large amount of data. Is there any particular reason why we throw an exception here instead of returning something like a timeout exception to user? We could make a change such that the we handle timeout exception differently.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pinot.apache.org
For additional commands, e-mail: dev-help@pinot.apache.org