### CI Link

local

### Repro line

./gradlew ':x-pack:plugin:esql:compute:test' --tests "org.elasticsearch.compute.operator.ProjectOperatorTests.testProjection" -Dtests.seed=91943554DA6E3559 -Dtests.locale=ar-SA -Dtests.timezone=Indian/Comoro -Druntime.java=21

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

_No response_

### Failure excerpt

```
  2> java.lang.AssertionError: java.lang.IllegalStateException: can't release already released block [IntVectorBlock[vector=ConstantIntVector[positions=3, value=0]]]
        at __randomizedtesting.SeedInfo.seed([91943554DA6E3559:69BE85F199AA9B5]:0)
        at org.elasticsearch.core.Releasables.closeExpectNoException(Releasables.java:49)
        at org.elasticsearch.compute.data.Page.releaseBlocks(Page.java:224)
        at org.elasticsearch.compute.operator.ProjectOperatorTests.testProjection(ProjectOperatorTests.java:79)

        Caused by:
        java.lang.IllegalStateException: can't release already released block [IntVectorBlock[vector=ConstantIntVector[positions=3, value=0]]]
            at org.elasticsearch.compute.data.IntVectorBlock.close(IntVectorBlock.java:76)
            at org.elasticsearch.core.IOUtils.close(IOUtils.java:71)
            at org.elasticsearch.core.IOUtils.close(IOUtils.java:87)
            at org.elasticsearch.core.IOUtils.close(IOUtils.java:63)
            at org.elasticsearch.core.Releasables.close(Releasables.java:73)
            at org.elasticsearch.core.Releasables.close(Releasables.java:41)
            at org.elasticsearch.core.Releasables.closeExpectNoException(Releasables.java:47)
            ... 2 more
```

I'm unsure if the test is generating sensible projection configurations. This may be an invalid thing.
x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/operator/ProjectOperatorTests.java
return expectedDescriptionOfSimple();
    }
    @Override
    protected void assertSimpleOutput(List<Page> input, List<Page> results) {
        long expected = input.stream().mapToInt(Page::getPositionCount).sum();
        int total = 0;
        for (Page page : results) {
            assertThat(page.getBlockCount(), equalTo(1));
            LongBlock remaining = page.getBlock(0);
            total += page.getPositionCount();
            for (int i = 0; i < page.getPositionCount(); i++) {
                assertThat(remaining.getLong(i), equalTo(expected));
                expected--;
            }
        }
        assertThat(total, equalTo(input.stream().mapToInt(Page::getPositionCount).sum()));
    }
    @Override
    protected ByteSizeValue smallEnoughToCircuitBreak() {
        assumeTrue("doesn't use big arrays so can't break", false);
        return null;
    }
    
    static CircuitBreakerService mockBreakerService(CircuitBreaker breaker) {
        CircuitBreakerService breakerService = mock(CircuitBreakerService.class);
        when(breakerService.getBreaker(CircuitBreaker.REQUEST)).thenReturn(breaker);
        return breakerService;
    }
}