elastic / elasticsearch

Free and Open Source, Distributed, RESTful Search Engine
https://www.elastic.co/products/elasticsearch
Other
69.99k stars 24.75k forks source link

ESQL: double lookup failure #111398

Open astefan opened 3 months ago

astefan commented 3 months ago

Description

PUT localhost:9200/test
{
    "mappings": {
        "properties": {
            "foo": {
                "type": "keyword"
            },
            "field11": {
                "type": "integer"
            },
            "field12": {
                "type": "long"
            }
        }
    }
}
POST localhost:9200/_bulk
{"index": {"_index":"test"}}
{"foo": "bar","field11":"123","field12":5}
{"index": {"_index":"test"}}
{"foo": "bar","field11":"123","field12":5}
{
    "query": "from test | lookup test2 on foo | lookup test3 on foo",
    "tables": {
        "test2": {
            "foo": {"keyword": ["bar"]},
            "field21": {"long": [123]},
            "field22": {"long": [123]}
        },
        "test3": {
            "foo": {"keyword": ["bar"]},
            "field31": {"long": [5]},
            "field32": {"long": [5]}
        }
    }
}

throws

[2024-07-29T12:35:05,516][WARN ][r.suppressed             ] [runTask-0] path: /_query, params: {format=txt, error_trace=true}, status: 500 java.lang.ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7
        at org.elasticsearch.compute.data.Page.getBlock(Page.java:135)
        at org.elasticsearch.xpack.esql.planner.LocalExecutionPlanner.lambda$alignPageToAttributes$1(LocalExecutionPlanner.java:302)
        at org.elasticsearch.compute.operator.OutputOperator.doAddInput(OutputOperator.java:66)
        at org.elasticsearch.compute.operator.SinkOperator.addInput(SinkOperator.java:32)
        at org.elasticsearch.compute.operator.Driver.runSingleLoopIteration(Driver.java:255)
        at org.elasticsearch.compute.operator.Driver.run(Driver.java:178)
        at org.elasticsearch.compute.operator.Driver$1.doRun(Driver.java:364)
elasticsearchmachine commented 3 months ago

Pinging @elastic/es-analytical-engine (Team:Analytics)

alex-spies commented 3 months ago

Thanks for the detailed reproducer. We had one already tracked in the meta issue, but it's better to have a separate issue for this.