-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed
Labels
Description
A reproducer is available in master...vrajat:rv-oom-subquery-npe
The issue is that subqueries make recursive calls to BaseSingleStageBrokerRequestHandler.handleRequest. The inner call clears the tracing context. When the outer call runs the reducer, no context is found and an NPE is thrown.
Stack Trace:
java.lang.NullPointerException: Cannot invoke "org.apache.pinot.spi.accounting.ThreadResourceUsageProvider.getThreadAllocatedBytes()" because the return value of "org.apache.pinot.core.accounting.PerQueryCPUMemAccountantFactory$PerQueryCPUMemResourceUsageAccountant.getThreadResourceUsageProvider()" is null
at org.apache.pinot.core.accounting.PerQueryCPUMemAccountantFactory$PerQueryCPUMemResourceUsageAccountant.sampleThreadBytesAllocated(PerQueryCPUMemAccountantFactory.java:294) ~[classes/:?]
at org.apache.pinot.core.accounting.PerQueryCPUMemAccountantFactory$PerQueryCPUMemResourceUsageAccountant.sampleUsage(PerQueryCPUMemAccountantFactory.java:238) ~[classes/:?]
at org.apache.pinot.spi.trace.Tracing$ThreadAccountantOps.sample(Tracing.java:311) ~[classes/:?]
at org.apache.pinot.spi.trace.Tracing$ThreadAccountantOps.sampleAndCheckInterruption(Tracing.java:352) ~[classes/:?]
at org.apache.pinot.core.query.reduce.AggregationDataTableReducer.reduceWithIntermediateResult(AggregationDataTableReducer.java:88) ~[classes/:?]
at org.apache.pinot.core.query.reduce.AggregationDataTableReducer.reduceAndSetResults(AggregationDataTableReducer.java:79) ~[classes/:?]
at org.apache.pinot.core.query.reduce.BrokerReduceService.reduceOnDataTable(BrokerReduceService.java:159) ~[classes/:?]
at org.apache.pinot.broker.requesthandler.SingleConnectionBrokerRequestHandler.processBrokerRequest(SingleConnectionBrokerRequestHandler.java:149) ~[classes/:?]
at org.apache.pinot.broker.requesthandler.BaseSingleStageBrokerRequestHandler.handleRequest(BaseSingleStageBrokerRequestHandler.java:838) ~[classes/:?]
at org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleRequest(BaseBrokerRequestHandler.java:193) ~[classes/:?]
at org.apache.pinot.broker.requesthandler.BrokerRequestHandlerDelegate.handleRequest(BrokerRequestHandlerDelegate.java:116) ~[classes/:?]
at org.apache.pinot.broker.api.resources.PinotClientRequest.executeSqlQuery(PinotClientRequest.java:490) ~[classes/:?]
at org.apache.pinot.broker.api.resources.PinotClientRequest.processSqlQueryPost(PinotClientRequest.java:177) ~[classes/:?]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
Reactions are currently unavailable
