ccyjoshua opened a new issue, #16091:
URL: https://github.com/apache/druid/issues/16091
### Affected Version
v28
### Description
- Cluster size
6 historicals, others are single service running
- Configurations in use
$ cat common.runtime.properties
```
#
# Extensions
#
druid.extensions.directory=extensions
druid.extensions.hadoopDependenciesDir=hadoop-dependencies
druid.extensions.loadList=["druid-kafka-indexing-service","druid-datasketches","druid-multi-stage-query","druid-s3-extensions","druid-avro-extensions","druid-parquet-extensions","mysql-metadata-storage","druid-histogram","druid-lookups-cached-global","statsd-emitter"]
#
# Logging
#
# Log all runtime properties on startup. Disable to avoid logging properties
on startup:
druid.startup.logging.logProperties=true
#
# Zookeeper
#
druid.zk.service.host=ae-druid-zk-1001.bdp.com,ae-druid-zk-1002.bdp.com,ae-druid-zk-1003.bdp.com,ae-druid-zk-1004.bdp.com,ae-druid-zk-1005.bdp.com
druid.zk.paths.base=amp-druid-dev
#
# Metadata storage
#
# For MySQL:
## druid.metadata.storage.type=mysql
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://adi-druid-dev-db.bdp.com:3306/druid
druid.metadata.storage.connector.user=druid_user
druid.metadata.storage.connector.password=****
#
# Deep storage
#
# For S3:
druid.storage.type=s3
druid.storage.bucket=****
druid.storage.baseKey=druid/amp-druid-dev/segments
#
# Indexing service logs
#
# For S3:
druid.indexer.logs.type=s3
druid.indexer.logs.s3Bucket=****
druid.indexer.logs.s3Prefix=infrastructure/druid-dev/indexing-logs
#
# Service discovery
#
druid.selectors.indexing.serviceName=amp-druid-dev/overlord
druid.selectors.coordinator.serviceName=amp-druid-dev/coordinator
#
# Monitoring
#
druid.emitter=statsd
druid.emitter.statsd.prefix=adi
druid.emitter.statsd.includeHost=true
druid.emitter.logging.logLevel=debug
druid.emitter.statsd.logLevel=debug
# Configure `statsd-emitter` endpoint
druid.emitter.statsd.hostname=127.0.0.1
druid.emitter.statsd.port=8125
# Configure `statsd-emitter` to use dogstatsd format. Must be set to true,
otherwise tags are not reported correctly to Datadog.
druid.emitter.statsd.dogstatsd=true
druid.emitter.statsd.dogstatsdServiceAsTag=true
druid.javascript.enabled=true
#
# Security
#
druid.server.hiddenProperties=["druid.s3.accessKey","druid.s3.secretKey","druid.metadata.storage.connector.password",
"password", "key", "token", "pwd"]
#
# SQL
#
druid.sql.enable=true
# Planning SQL query when there is aggregate distinct in the statement
druid.sql.planner.useGroupingSetForExactDistinct=true
#
# Lookups
#
druid.lookup.enableLookupSyncOnStartup=false
#
# Expression processing config
#
druid.expressions.useStrictBooleans=true
#
# Http client
#
```
$ cat query/broker/runtime.properties
```
# Broker Process Configs
druid.host=amp-druid-dev-query-1001.bdp.com
druid.service=amp-druid-dev/broker
druid.plaintextPort=8082
# Query configuration
## Query Routing
druid.broker.balancer.type=connectionCount
druid.broker.select.tier=highestPriority
## Query prioritization
druid.query.scheduler.numThreads=95
druid.query.scheduler.prioritization.strategy=threshold
druid.query.scheduler.prioritization.periodThreshold=P30D
druid.query.scheduler.prioritization.adjustment=10
## Query laning
druid.query.scheduler.laning.strategy=hilo
druid.query.scheduler.laning.maxLowPercent=25
# Server Configuration
druid.server.http.numThreads=100
druid.server.http.queueSize=100
druid.server.http.maxIdleTime=PT5M
druid.server.http.enableRequestLimit=true
druid.server.http.defaultQueryTimeout=120000
druid.server.http.maxQueryTimeout=150000
## Guardrails for materialization of subqueries
druid.server.http.maxSubqueryRows=2147483647
# druid.server.http.maxSubqueryBytes=auto
# This config is experimental and currently breaks WINDOW_FUNCTIONS
# Client Configuration
druid.broker.http.numConnections=32
druid.broker.http.numMaxThreads=80
druid.broker.http.maxQueuedBytes=500000000
# Retry Policy
druid.broker.retryPolicy.numTries=1
# Processing
druid.processing.buffer.sizeBytes=536870912
druid.processing.numMergeBuffers=10
druid.processing.fifo=true
druid.processing.merge.useParallelMergePool=true
druid.processing.numThreads=31
druid.processing.tmpDir=/tmp/druid/processing
# SQL
druid.sql.enable=true
druid.sql.avatica.maxConnections=100
druid.sql.avatica.maxStatementsPerConnection=5
druid.sql.http.enable=true
# Broker Caching
druid.broker.cache.useCache=false
druid.broker.cache.populateCache=false
# Group by
druid.query.groupBy.maxOnDiskStorage=10737418240
# Monitoring
druid.monitoring.monitors=["org.apache.druid.client.cache.CacheMonitor","org.apache.druid.java.util.metrics.CpuAcctDeltaMonitor","org.apache.druid.java.util.metrics.JvmMonitor","org.apache.druid.java.util.metrics.JvmThreadsMonitor","org.apache.druid.server.metrics.EventReceiverFirehoseMonitor","org.apache.druid.server.metrics.HistoricalMetricsMonitor","org.apache.druid.server.metrics.QueryCountStatsMonitor"]
druid.monitoring.emissionPeriod=PT15S
```
$ cat query/router/runtime.properties
```
# Router Process Configs
druid.host=amp-druid-dev-query-1001.bdp.com
druid.service=amp-druid-dev/router
druid.plaintextPort=8088
# Runtime Configuration
druid.router.defaultBrokerServiceName=amp-druid-dev/broker
druid.router.coordinatorServiceName=amp-druid-dev/coordinator
druid.router.tierToBrokerMap={"_default_tier":"amp-druid-dev/broker"}
druid.router.strategy=connectionCount
druid.router.strategy.connectionCount.loadBalancingCoefficient=1
druid.router.strategy.connectionCount.queryCapacityCoefficient=1
druid.router.avatica.balancer.type=consistentHash
druid.router.managementProxy.enabled=true
druid.router.http.numConnections=50
druid.router.http.eagerInitialization=true
druid.router.http.readTimeout=PT2M
druid.router.http.numMaxThreads=100
druid.router.sql.enable=true
# Monitoring
druid.monitoring.monitors=["org.apache.druid.client.cache.CacheMonitor","org.apache.druid.java.util.metrics.CpuAcctDeltaMonitor","org.apache.druid.java.util.metrics.JvmMonitor","org.apache.druid.java.util.metrics.JvmThreadsMonitor","org.apache.druid.server.metrics.EventReceiverFirehoseMonitor","org.apache.druid.server.metrics.QueryCountStatsMonitor"]
druid.monitoring.emissionPeriod=PT15S
```
$ cat data/historical/runtime.properties
```
# Historical Process Configuration
druid.host=amp-druid-dev-query-1001.bdp.com
druid.service=amp-druid-dev/historical
druid.plaintextPort=8083
# istorical General Configuration
druid.server.maxSize=3400000000000
druid.server.tier=_default_tier
druid.server.priority=0
# Storing Segments
druid.segmentCache.locations=[{"path":"/opt/druid-segment-cache","maxSize"\:3400000000000}]
druid.segmentCache.locationSelector.strategy=leastBytesUsed
# Historical Query Configs
druid.server.http.numThreads=300
druid.server.http.maxQueryTimeout=120000
druid.server.http.defaultQueryTimeout=120000
# Processing
druid.processing.buffer.sizeBytes=536870912
druid.processing.numMergeBuffers=4
druid.processing.numThreads=15
druid.processing.fifo=true
# Historical Caching
druid.historical.cache.useCache=true
druid.historical.cache.populateCache=true
druid.cache.type=caffeine
# druid.cache.sizeInBytes=20G bytes = 21_474_836_480 bytes; min(1GiB,
Runtime.maxMemory / 10)
druid.cache.sizeInBytes=21474836480
# 7 Days
druid.cache.expireAfter=604800000
druid.cache.evictOnClose=true
druid.cache.cacheExecutorFactory=COMMON_FJP
# GroupBy Query Config
# druid.query.groupBy.maxOnDiskStorage=8G bytes = 8_000_000_000 bytes
druid.query.groupBy.maxOnDiskStorage=8000000000
# Monitoring
druid.monitoring.monitors=["org.apache.druid.client.cache.CacheMonitor","org.apache.druid.java.util.metrics.CpuAcctDeltaMonitor","org.apache.druid.java.util.metrics.JvmMonitor","org.apache.druid.java.util.metrics.JvmThreadsMonitor","org.apache.druid.server.metrics.EventReceiverFirehoseMonitor","org.apache.druid.server.metrics.HistoricalMetricsMonitor","org.apache.druid.serve
```
- Steps to reproduce the problem
Ingest inline data using spec below.
```
{
"type": "index_parallel",
"spec": {
"ioConfig": {
"type": "index_parallel",
"inputSource": {
"type": "inline",
"data":
"{\"timestamp\":\"2019-08-25T00:00:00.031Z\",\"agent_type\":\"Browser\",\"lang1\":[\"es\",\"es-419\"],\"lang2\":[\"a\",\"b\"],\"session_length\":3}\n{\"timestamp\":\"2019-08-25T00:00:00.031Z\",\"agent_type\":\"Browser\",\"lang1\":[\"en\",\"en-us\"],\"lang2\":[\"c\",\"d\"],\"session_length\":5}\n{\"timestamp\":\"2019-08-25T00:00:00.031Z\",\"agent_type\":\"TV\",\"lang1\":[\"es\"],\"lang2\":[\"a\"],\"session_length\":7}\n{\"timestamp\":\"2019-08-25T00:00:00.031Z\",\"agent_type\":\"TV\",\"lang1\":[\"es\",\"es-419\"],\"lang2\":[\"a\",\"b\"],\"session_length\":1}"
},
"inputFormat": {
"type": "json"
}
},
"tuningConfig": {
"type": "index_parallel",
"partitionsSpec": {
"type": "dynamic"
}
},
"dataSchema": {
"dataSource": "mv_debug_sample",
"timestampSpec": {
"column": "timestamp",
"format": "iso"
},
"dimensionsSpec": {
"dimensions": [
"agent_type",
"lang1",
"lang2",
{
"type": "long",
"name": "session_length"
}
]
},
"granularitySpec": {
"queryGranularity": "none",
"rollup": false,
"segmentGranularity": "day"
}
}
}
}
```
Run query below from UI. Removing `LIMIT` will resolve the error.
```
WITH a AS (
SELECT
"agent_type",
CASE "agent_type" WHEN 'Browser' THEN MV_TO_ARRAY("lang1") ELSE
MV_TO_ARRAY("lang2") END AS lang,
"session_length"
FROM mv_debug_sample
LIMIT 5
)
SELECT * FROM a CROSS JOIN unnest(lang) AS t(elem)
```
- The error message or stack traces encountered. Providing more context,
such as nearby log messages or even entire logs, can be helpful.
Error message from UI:
```
Error: RUNTIME_FAILURE (OPERATOR)
null
java.lang.NullPointerException
```
Error in the log with debug=true:
```
024-03-10T00:11:12,891 INFO [sql[a88cf147-28fb-45ae-b692-0bf3f642afa5]]
org.apache.druid.sql.calcite.planner.CalciteRulesManager - Start
LogicalSort(fetch=[1001:BIGINT]): rowcount = 5.0, cumulative cost = {inf},
id = 1543612
LogicalProject(agent_type=[$0], lang=[$1], session_length=[$2],
elem=[$3]): rowcount = 5.0, cumulative cost = {inf}, id = 1543606
LogicalCorrelate(correlation=[$cor0], joinType=[inner],
requiredColumns=[{1}]): rowcount = 5.0, cumulative cost = {inf}, id = 1543604
LogicalSort(fetch=[5]): rowcount = 5.0, cumulative cost = {205.0 rows,
521.0 cpu, 0.0 io}, id = 1543595
LogicalProject(agent_type=[$1], lang=[CASE(=($1, 'Browser'),
MV_TO_ARRAY($2), MV_TO_ARRAY($3))], session_length=[$4]): rowcount = 100.0,
cumulative cost = {200.0 rows, 401.0 cpu, 0.0 io}, id = 1543593
LogicalTableScan(table=[[druid, mv_debug_sample]]): rowcount =
100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 1543567
LogicalProject(elem=[$0]): rowcount = 1.0, cumulative cost = {4.0
rows, 4.0 cpu, 0.0 io}, id = 1543602
Uncollect: rowcount = 1.0, cumulative cost = {3.0 rows, 3.0 cpu, 0.0
io}, id = 1543600
LogicalProject(lang=[$cor0.lang]): rowcount = 1.0, cumulative cost
= {2.0 rows, 2.0 cpu, 0.0 io}, id = 1543598
LogicalValues(tuples=[[{ 0 }]]): rowcount = 1.0, cumulative cost
= {1.0 rows, 1.0 cpu, 0.0 io}, id = 1543570
2024-03-10T00:11:12,892 INFO [sql[a88cf147-28fb-45ae-b692-0bf3f642afa5]]
org.apache.druid.sql.calcite.planner.CalciteRulesManager - After PreProgram
LogicalSort(fetch=[1001:BIGINT]): rowcount = 5.0, cumulative cost = {inf},
id = 1543688
LogicalCorrelate(correlation=[$cor0], joinType=[inner],
requiredColumns=[{1}]): rowcount = 5.0, cumulative cost = {inf}, id = 1543686
LogicalProject(agent_type=[$1], lang=[CASE(=($1, 'Browser'),
MV_TO_ARRAY($2), MV_TO_ARRAY($3))], session_length=[$4]): rowcount = 5.0,
cumulative cost = {110.0 rows, 276.0 cpu, 0.0 io}, id = 1543693
LogicalSort(fetch=[5]): rowcount = 5.0, cumulative cost = {105.0 rows,
261.0 cpu, 0.0 io}, id = 1543690
LogicalTableScan(table=[[druid, mv_debug_sample]]): rowcount =
100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 1543567
Uncollect: rowcount = 1.0, cumulative cost = {3.0 rows, 3.0 cpu, 0.0
io}, id = 1543684
LogicalProject(lang=[$cor0.lang]): rowcount = 1.0, cumulative cost =
{2.0 rows, 2.0 cpu, 0.0 io}, id = 1543682
LogicalValues(tuples=[[{ 0 }]]): rowcount = 1.0, cumulative cost =
{1.0 rows, 1.0 cpu, 0.0 io}, id = 1543570
2024-03-10T00:11:12,894 INFO [sql[a88cf147-28fb-45ae-b692-0bf3f642afa5]]
org.apache.druid.sql.calcite.planner.CalciteRulesManager - After volcano
planner program
DruidCorrelateUnnestRel(correlation=[$cor0], joinType=[inner],
requiredColumns=[{1}],
query=[{"queryType":"scan","dataSource":{"type":"table","name":"__correlate_unnest__"},"intervals":{"type":"intervals","intervals":
["-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"]},"resultFormat":"compactedList","limit":1001,"columns":["$f0","agent_type","lang","session_length"],"legacy":false,"context":{"debug":true,"queryId":"a8
8cf147-28fb-45ae-b692-0bf3f642afa5","sqlOuterLimit":1001,"sqlQueryId":"a88cf147-28fb-45ae-b692-0bf3f642afa5"},"granularity":{"type":"all"}}],
signature=[{agent_type:STRING, lang:ARRAY<STRING>, session_length:LONG, $f0
:STRING}]): rowcount = 1.0, cumulative cost = {100002.59999999999 rows, 1.0
cpu, 0.0 io}, id = 1543742
DruidQueryRel(query=[{"queryType":"scan","dataSource":{"type":"table","name":"mv_debug_sample"},"intervals":{"type":"intervals","intervals":["-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"]},"virtualC
olumns":[{"type":"expression","name":"v0","expression":"case_searched((\"agent_type\"
==
'Browser'),mv_to_array(\"lang1\"),mv_to_array(\"lang2\"))","outputType":"ARRAY<STRING>"}],"resultFormat":"compactedList","limit"
:5,"columns":["agent_type","session_length","v0"],"legacy":false,"context":{"debug":true,"queryId":"a88cf147-28fb-45ae-b692-0bf3f642afa5","sqlOuterLimit":1001,"sqlQueryId":"a88cf147-28fb-45ae-b692-0bf3f642afa5"},"granularity":{"type":"all"}}],
signature=[{agent_type:STRING, v0:ARRAY<STRING>, session_length:LONG}]):
rowcount = 1.0, cumulative cost = {0.9 rows, 0.0 cpu, 0.0 io}, id = 1543727
DruidUnnestRel(expr=[$cor0.lang], filter=[null]): rowcount = 1.0,
cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io}, id = 1543721
024-03-10T00:11:12,894 WARN [sql[a88cf147-28fb-45ae-b692-0bf3f642afa5]]
org.apache.druid.sql.http.SqlResource - Exception while processing
sqlQueryId[a88cf147-28fb-45ae-b692-0bf3f642afa5]
org.apache.druid.error.DruidException: null
at
org.apache.druid.error.DruidException$DruidExceptionBuilder.build(DruidException.java:460)
~[druid-processing-28.0.1.jar:28.0.1]
at
org.apache.druid.error.QueryExceptionCompat.makeException(QueryExceptionCompat.java:50)
~[druid-processing-28.0.1.jar:28.0.1]
at
org.apache.druid.error.DruidException.fromFailure(DruidException.java:154)
~[druid-processing-28.0.1.jar:28.0.1]
at
org.apache.druid.server.QueryResultPusher.handleQueryException(QueryResultPusher.java:211)
~[druid-server-28.0.1.jar:28.0.1]
at
org.apache.druid.server.QueryResultPusher.push(QueryResultPusher.java:177)
~[druid-server-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.http.SqlResource.doPost(SqlResource.java:121)
~[druid-sql-28.0.1.jar:28.0.1]
at jdk.internal.reflect.GeneratedMethodAccessor137.invoke(Unknown
Source) ~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
~[jersey-server-1.19.4.jar:1.19.4]
at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
~[jersey-servlet-1.19.4.jar:1.19.4]
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
~[jersey-servlet-1.19.4.jar:1.19.4]
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
~[jersey-servlet-1.19.4.jar:1.19.4]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
~[javax.servlet-api-3.1.0.jar:3.1.0]
at
com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)
~[guice-servlet-4.1.0.jar:?]
at
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)
~[guice-servlet-4.1.0.jar:?]
at
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)
~[guice-servlet-4.1.0.jar:?]
at
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
~[guice-servlet-4.1.0.jar:?]
at
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
~[guice-servlet-4.1.0.jar:?]
at
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
~[guice-servlet-4.1.0.jar:?]
at
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
~[guice-servlet-4.1.0.jar:?]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.security.PreResponseAuthorizationCheckFilter.doFilter(PreResponseAuthorizationCheckFilter.java:84)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.initialization.jetty.StandardResponseHeaderFilterHolder$StandardResponseHeaderFilter.doFilter(StandardResponseHeaderFilterHolder.java:164)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.security.AllowHttpMethodsResourceFilter.doFilter(AllowHttpMethodsResourceFilter.java:78)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.security.AllowOptionsResourceFilter.doFilter(AllowOptionsResourceFilter.java:74)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.security.AllowAllAuthenticator$1.doFilter(AllowAllAuthenticator.java:84)
~[druid-server-28.0.1.jar:28.0.1]
at
org.apache.druid.server.security.AuthenticationWrappingFilter.doFilter(AuthenticationWrappingFilter.java:59)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.security.AllowAllAuthenticator$1.doFilter(AllowAllAuthenticator.java:84)
~[druid-server-28.0.1.jar:28.0.1]
at
org.apache.druid.server.security.AuthenticationWrappingFilter.doFilter(AuthenticationWrappingFilter.java:59)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.security.SecuritySanityCheckFilter.doFilter(SecuritySanityCheckFilter.java:77)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.apache.druid.server.initialization.jetty.LimitRequestsFilter.doFilter(LimitRequestsFilter.java:64)
~[druid-server-28.0.1.jar:28.0.1]
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
~[jetty-servlet-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:181)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at org.eclipse.jetty.server.Server.handle(Server.java:516)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
~[jetty-server-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
~[jetty-io-9.4.53.v20231009.jar:9.4.53.v20231009]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
~[jetty-io-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
~[jetty-io-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
~[jetty-util-9.4.53.v20231009.jar:9.4.53.v20231009]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
Caused by: org.apache.druid.query.QueryInterruptedException
... 82 more
Caused by: java.lang.NullPointerException
at
org.apache.druid.sql.calcite.expression.DruidExpression.getDirectColumn(DruidExpression.java:356)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.calcite.rel.DruidCorrelateUnnestRel.toDruidQuery(DruidCorrelateUnnestRel.java:212)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.calcite.rel.DruidRel.runQuery(DruidRel.java:55)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.calcite.planner.QueryHandler.lambda$planWithDruidConvention$6(QueryHandler.java:621)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.calcite.planner.PlannerResult.run(PlannerResult.java:62)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.DirectStatement$ResultSet.run(DirectStatement.java:109)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.sql.http.SqlResource$SqlResourceQueryResultPusher$1.start(SqlResource.java:249)
~[druid-sql-28.0.1.jar:28.0.1]
at
org.apache.druid.server.QueryResultPusher.push(QueryResultPusher.java:121)
~[druid-server-28.0.1.jar:28.0.1]
... 81 more
```
- Any debugging that you have already done
If I do not use `CASE`, the array column is null, as showing in query below.
```
WITH a AS (
SELECT
"agent_type",
MV_TO_ARRAY("lang1") as lang,
"session_length"
FROM mv_debug_sample
LIMIT 5
)
SELECT * FROM a CROSS JOIN unnest(lang) AS t(elem)
```
Result:
```
agent_type lang session_length elem
Browser null 5 en
Browser null 5 en-us
Browser null 3 es
Browser null 3 es-419
TV null 7 es
TV null 1 es
TV null 1 es-419
```
This only occurs with `LIMIT` in subquery, and with `UNNEST`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]