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:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to