Skip to content

[ESQL] NullPointerException in EsqlBinaryComparison #141267

@jan-elastic

Description

@jan-elastic

Elasticsearch Version

main

Installed Plugins

No response

Java Version

bundled

OS Version

linux

Problem Description

The following stacktrace is observed:

java.lang.NullPointerException: Cannot invoke "org.elasticsearch.xpack.esql.core.type.DataType.isNumeric()" because "commonType" is null
    at org.elasticsearch.xpack.esql.expression.predicate.operator.comparison.EsqlBinaryComparison.toEvaluator(EsqlBinaryComparison.java:235)
    at org.elasticsearch.xpack.esql.evaluator.EvalMapper.toEvaluator(EvalMapper.java:70)
    at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.planFilter(LocalExecutionPlanner.java:887)
    at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:276)
    at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.planExchangeSink(LocalExecutionPlanner.java:451)
    at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:315)
    at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.plan(LocalExecutionPlanner.java:235)
    at org.elasticsearch.xpack.esql.plugin.ComputeService.runCompute(ComputeService.java:692)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler$DataNodeRequestExecutor.lambda$runBatch$4(DataNodeComputeHandler.java:370)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:258)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionRunnable$2.accept(ActionRunnable.java:58)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionRunnable$2.accept(ActionRunnable.java:55)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:101)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler$DataNodeRequestExecutor.lambda$acquireSearchContexts$6(DataNodeComputeHandler.java:431)
    at org.elasticsearch.base@9.4.0/org.elasticsearch.core.AbstractRefCounted$1.closeInternal(AbstractRefCounted.java:125)
    at org.elasticsearch.base@9.4.0/org.elasticsearch.core.AbstractRefCounted.decRef(AbstractRefCounted.java:77)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.RefCountingRunnable.close(RefCountingRunnable.java:122)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler$DataNodeRequestExecutor.acquireSearchContexts(DataNodeComputeHandler.java:444)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler$DataNodeRequestExecutor.runBatch(DataNodeComputeHandler.java:324)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler$DataNodeRequestExecutor.start(DataNodeComputeHandler.java:285)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler.runComputeOnDataNode(DataNodeComputeHandler.java:516)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler.messageReceived(DataNodeComputeHandler.java:599)
    at org.elasticsearch.xpack.esql.plugin.DataNodeComputeHandler.messageReceived(DataNodeComputeHandler.java:75)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler$1.doRun(SecurityServerTransportInterceptor.java:318)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler$3.onResponse(SecurityServerTransportInterceptor.java:371)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler$3.onResponse(SecurityServerTransportInterceptor.java:360)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.runRequestInterceptors(AuthorizationService.java:776)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.handleIndexActionAuthorizationResult(AuthorizationService.java:716)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.lambda$authorizeAction$10(AuthorizationService.java:543)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService$AuthorizationResultListener.onResponse(AuthorizationService.java:1167)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService$AuthorizationResultListener.onResponse(AuthorizationService.java:1133)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:33)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:423)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:343)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener.addListener(SubscribableListener.java:239)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener.addListener(SubscribableListener.java:197)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.lambda$authorizeAction$11(AuthorizationService.java:541)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListener.run(ActionListener.java:465)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.lambda$authorizeAction$12(AuthorizationService.java:538)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:258)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener$SuccessResult.complete(SubscribableListener.java:423)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener.tryComplete(SubscribableListener.java:343)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener.addListener(SubscribableListener.java:239)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.SubscribableListener.addListener(SubscribableListener.java:197)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.authorizeAction(AuthorizationService.java:521)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.maybeAuthorizeRunAs(AuthorizationService.java:474)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.lambda$authorize$3(AuthorizationService.java:361)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:258)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.ContextPreservingActionListener.onResponse(ContextPreservingActionListener.java:33)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.RBACEngine.lambda$resolveAuthorizationInfo$0(RBACEngine.java:179)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.store.CompositeRolesStore.lambda$getRoles$4(CompositeRolesStore.java:217)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.store.CompositeRolesStore.lambda$getRole$6(CompositeRolesStore.java:236)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
    at org.elasticsearch.xcore@9.4.0/org.elasticsearch.xpack.core.security.authz.store.RoleReferenceIntersection.lambda$buildRole$0(RoleReferenceIntersection.java:49)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.support.GroupedActionListener.onResponse(GroupedActionListener.java:57)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.store.CompositeRolesStore.buildRoleFromRoleReference(CompositeRolesStore.java:334)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.store.CompositeRolesStore.lambda$getRole$5(CompositeRolesStore.java:235)
    at org.elasticsearch.xcore@9.4.0/org.elasticsearch.xpack.core.security.authz.store.RoleReferenceIntersection.lambda$buildRole$1(RoleReferenceIntersection.java:53)
    at java.base/java.util.ImmutableCollections$List12.forEach(ImmutableCollections.java:681)
    at org.elasticsearch.xcore@9.4.0/org.elasticsearch.xpack.core.security.authz.store.RoleReferenceIntersection.buildRole(RoleReferenceIntersection.java:53)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.store.CompositeRolesStore.getRole(CompositeRolesStore.java:234)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.store.CompositeRolesStore.getRoles(CompositeRolesStore.java:210)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.RBACEngine.resolveAuthorizationInfo(RBACEngine.java:175)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authz.AuthorizationService.authorize(AuthorizationService.java:377)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.ServerTransportFilter.lambda$inbound$1(ServerTransportFilter.java:115)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:261)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.lambda$authenticate$1(AuthenticatorChain.java:91)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:258)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authc.AuthenticatorChain.authenticate(AuthenticatorChain.java:111)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:274)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:206)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.ServerTransportFilter.authenticate(ServerTransportFilter.java:128)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.ServerTransportFilter.inbound(ServerTransportFilter.java:106)
    at org.elasticsearch.security@9.4.0/org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler.messageReceived(SecurityServerTransportInterceptor.java:382)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:86)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.transport.TransportService$6.doRun(TransportService.java:1111)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1113)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
    at org.elasticsearch.server@9.4.0/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1113)
    at org.elasticsearch.server@9.4.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)

Steps to Reproduce

unknown

Logs (if relevant)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    :Analytics/ES|QLAKA ESQL>bugTeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)medium-riskAn open issue or test failure that is a medium risk to future releases

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions