### CI Link

https://gradle-enterprise.elastic.co/s/xws6gmgwdwnmm/tests/overview?outcome=failed

### Repro line

./gradlew ':x-pack:plugin:esql:test' --tests "org.elasticsearch.xpack.esql.CsvTests" -Dtests.method="test {rename.RenameProjectEval}" -Dtests.seed=F32BCA1B870438F -Dtests.locale=ar-LY -Dtests.timezone=UTC -Druntime.java=21	

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

_No response_

### Failure excerpt

```
java.lang.AssertionError: java.lang.IllegalStateException: can't release already released block [IntVectorBlock[vector=IntArrayVector[positions=3, values=[2, 5, 4]]]]
```
x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/ProjectOperator.java
* @param projection list of blocks to keep and their order.
     */
    public ProjectOperator(List<Integer> projection) {
        this.pagesUsed = new HashSet<>(projection);
        this.projection = projection.stream().mapToInt(Integer::intValue).toArray();
    }
    @Override
    protected Page process(Page page) {
        var blockCount = page.getBlockCount();
        if (blockCount == 0) {
            return page;
        }
        if (blocks == null) {
            blocks = new Block[projection.length];
        }
        Arrays.fill(blocks, null);
        int b = 0;
        for (int source : projection) {
            if (source >= blockCount) {
                throw new IllegalArgumentException(
                    "Cannot project block with index [" + source + "] from a page with size [" + blockCount + "]"
                );
            }
            var block = page.getBlock(source);
            blocks[b++] = block;
        }
        closeUnused(page, blocks);
        return new Page(page.getPositionCount(), blocks);
    }
    /**