-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Labels
:Search Relevance/ES|QLSearch functionality in ES|QLSearch functionality in ES|QLTeam:Search RelevanceMeta label for the Search Relevance team in ElasticsearchMeta label for the Search Relevance team in Elasticsearch
Description
Summary
A StringIndexOutOfBoundsException occurs when parsing ES|QL COMPLETION commands with omitted optional parameters (WITH clause).
Error Details
The error happens when attempting to extract source text from an empty CommandNamedParametersContext that has invalid token indices.
java.lang.StringIndexOutOfBoundsException: Range [174, 174 + -1) out of bounds for length 198
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Preconditions.java:118)
at java.base/jdk.internal.util.Preconditions.checkFromIndexSize(Preconditions.java:397)
at java.base/java.lang.String.checkBoundsOffCount(String.java:4925)
at java.base/java.lang.String.<init>(String.java:546)
at org.antlr.v4.runtime.CodePointCharStream$CodePoint8BitCharStream.getText(CodePointCharStream.java:160)
at org.elasticsearch.xpack.esql.parser.ParserUtils.source(ParserUtils.java:131)
at org.elasticsearch.xpack.esql.parser.ParserUtils.source(ParserUtils.java:103)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.applyCompletionOptions(LogicalPlanBuilder.java:1166)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.lambda$visitCompletionCommand$39(LogicalPlanBuilder.java:1155)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitCompositeQuery(LogicalPlanBuilder.java:200)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitCompositeQuery(LogicalPlanBuilder.java:114)
at org.elasticsearch.xpack.esql.parser.EsqlBaseParser$CompositeQueryContext.accept(EsqlBaseParser.java:379)
at org.elasticsearch.xpack.esql.parser.ParserUtils.typedParsing(ParserUtils.java:72)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.plan(LogicalPlanBuilder.java:135)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitCompositeQuery(LogicalPlanBuilder.java:197)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitCompositeQuery(LogicalPlanBuilder.java:114)
at org.elasticsearch.xpack.esql.parser.EsqlBaseParser$CompositeQueryContext.accept(EsqlBaseParser.java:379)
at org.elasticsearch.xpack.esql.parser.ParserUtils.typedParsing(ParserUtils.java:72)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.plan(LogicalPlanBuilder.java:135)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitSingleStatement(LogicalPlanBuilder.java:168)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitStatements(LogicalPlanBuilder.java:158)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.visitStatements(LogicalPlanBuilder.java:114)
at org.elasticsearch.xpack.esql.parser.EsqlBaseParser$StatementsContext.accept(EsqlBaseParser.java:250)
at org.elasticsearch.xpack.esql.parser.ParserUtils.typedParsing(ParserUtils.java:72)
at org.elasticsearch.xpack.esql.parser.LogicalPlanBuilder.statement(LogicalPlanBuilder.java:130)
at org.elasticsearch.xpack.esql.parser.EsqlParser.invokeParser(EsqlParser.java:172)
at org.elasticsearch.xpack.esql.parser.EsqlParser.createQuery(EsqlParser.java:132)
at org.elasticsearch.xpack.esql.session.EsqlSession.parse(EsqlSession.java:454)
at org.elasticsearch.xpack.esql.session.EsqlSession.execute(EsqlSession.java:189)
at org.elasticsearch.xpack.esql.execution.PlanExecutor.lambda$esql$2(PlanExecutor.java:102)
at org.elasticsearch.server@9.3.0/org.elasticsearch.action.ActionListener.run(ActionListener.java:465)
at org.elasticsearch.xpack.esql.execution.PlanExecutor.esql(PlanExecutor.java:102)
at org.elasticsearch.xpack.esql.plugin.TransportEsqlQueryAction.innerExecute(TransportEsqlQueryAction.java:257)
at org.elasticsearch.xpack.esql.plugin.TransportEsqlQueryAction.doExecuteForked(TransportEsqlQueryAction.java:227)
at org.elasticsearch.xpack.esql.plugin.TransportEsqlQueryAction.lambda$doExecute$5(TransportEsqlQueryAction.java:217)
at org.elasticsearch.server@9.3.0/org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:101)
at org.elasticsearch.server@9.3.0/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
at org.elasticsearch.server@9.3.0/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
at org.elasticsearch.server@9.3.0/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1076)
at org.elasticsearch.server@9.3.0/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Metadata
Metadata
Assignees
Labels
:Search Relevance/ES|QLSearch functionality in ES|QLSearch functionality in ES|QLTeam:Search RelevanceMeta label for the Search Relevance team in ElasticsearchMeta label for the Search Relevance team in Elasticsearch