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