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]

Reply via email to