SearchServiceTests.testIsParallelCollectionSupportedForResults fails intermittently

```
12:37:10 org.elasticsearch.search.SearchServiceTests > testIsParallelCollectionSupportedForResults FAILED
12:37:10     java.lang.AssertionError
12:37:10         at __randomizedtesting.SeedInfo.seed([4140C168DE8FB0BB:771A78D5E4B36180]:0)
12:37:10         at org.junit.Assert.fail(Assert.java:86)
12:37:10         at org.junit.Assert.assertTrue(Assert.java:41)
12:37:10         at org.junit.Assert.assertFalse(Assert.java:64)
12:37:10         at org.junit.Assert.assertFalse(Assert.java:74)
12:37:10         at org.elasticsearch.search.SearchServiceTests.testIsParallelCollectionSupportedForResults(SearchServiceTests.java:2096)
```

```
./gradlew ':server:test' --tests "org.elasticsearch.search.SearchServiceTests.testIsParallelCollectionSupportedForResults" -Dtests.seed=4140C168DE8FB0BB -Dtests.locale=es-SV -Dtests.timezone=Africa/Banjul -Druntime.java=20
```
server/src/test/java/org/elasticsearch/search/SearchServiceTests.java
service.executeFetchPhase(req, new SearchShardTask(123L, "", "", "", null, Collections.emptyMap()), listener);
                        listener.get();
                        if (useScroll) {
                            
                            service.freeReaderContext(searchPhaseResult.getContextId());
                        }
                    } catch (ExecutionException ex) {
                        assertThat(ex.getCause(), instanceOf(RuntimeException.class));
                        throw ((RuntimeException) ex.getCause());
                    }
                } catch (AlreadyClosedException ex) {
                    throw ex;
                } catch (IllegalStateException ex) {
                    assertEquals(AbstractRefCounted.ALREADY_CLOSED_MESSAGE, ex.getMessage());
                } catch (SearchContextMissingException ex) {
                    
                }
            }
        } finally {
            running.set(false);
            thread.join();
            semaphore.acquire(Integer.MAX_VALUE);
        }
        assertEquals(0, service.getActiveContexts());
        SearchStats.Stats totalStats = indexShard.searchStats().getTotal();
        assertEquals(0, totalStats.getQueryCurrent());
        assertEquals(0, totalStats.getScrollCurrent());
        assertEquals(0, totalStats.getFetchCurrent());
    }
    public void testSearchWhileIndexDeletedDoesNotLeakSearchContext() throws ExecutionException, InterruptedException {