vogievetsky opened a new issue #9906: URL: https://github.com/apache/druid/issues/9906
### Affected Version Druid 0.18.0 ### Description The query `SELECT ARRAY ['Hello', NULL]` returns a (HTML formatted) stack overflow  Note that `SELECT ARRAY [NULL]` works fine The error (truncated) ``` <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <title>Error 500 Server Error</title> </head> <body><h2>HTTP ERROR 500</h2> <p>Problem accessing /druid/v2/sql. Reason: <pre> Server Error</pre></p><h3>Caused by:</h3><pre>javax.servlet.ServletException: java.lang.StackOverflowError at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:420) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.druid.server.security.PreResponseAuthorizationCheckFilter.doFilter(PreResponseAuthorizationCheckFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.druid.server.security.AllowOptionsResourceFilter.doFilter(AllowOptionsResourceFilter.java:75) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.druid.server.security.AllowAllAuthenticator$1.doFilter(AllowAllAuthenticator.java:84) at org.apache.druid.server.security.AuthenticationWrappingFilter.doFilter(AuthenticationWrappingFilter.java:59) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.apache.druid.server.security.SecuritySanityCheckFilter.doFilter(SecuritySanityCheckFilter.java:86) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61) at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:174) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:503) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.StackOverflowError at java.util.regex.Pattern.error(Pattern.java:1969) at java.util.regex.Pattern.<init>(Pattern.java:1354) at java.util.regex.Pattern.compile(Pattern.java:1054) at java.lang.String.replace(String.java:2239) at org.apache.calcite.sql.SqlDialect.quoteStringLiteral(SqlDialect.java:430) at org.apache.calcite.util.NlsString.asSql(NlsString.java:231) at org.apache.calcite.util.NlsString.asSql(NlsString.java:214) at org.apache.calcite.rex.RexLiteral.appendAsJava(RexLiteral.java:597) at org.apache.calcite.rex.RexLiteral.toJavaString(RexLiteral.java:385) at org.apache.calcite.rex.RexLiteral.computeDigest(RexLiteral.java:272) at org.apache.calcite.rex.RexLiteral.<init>(RexLiteral.java:219) at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:954) at org.apache.calcite.rex.RexBuilder.makeCharLiteral(RexBuilder.java:1137) at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1367) at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1359) at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1443) at org.apache.druid.sql.calcite.planner.DruidRexExecutor.reduce(DruidRexExecutor.java:132) at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressionsInternal(ReduceExpressionsRule.java:695) at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(ReduceExpressionsRule.java:616) at org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:301) at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:319) at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:560) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:374) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) at org.apache.calcite.plan.hep.HepPlanner.depthFirstApply(HepPlanner.java:386) ... ``` ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
