There have been two instances of this today (both in PR builds) that blew up due to an OOME.

**Build scan:**
https://gradle-enterprise.elastic.co/s/ryfsljqpbyjlm/tests/:x-pack:plugin:ml:internalClusterTest/org.elasticsearch.xpack.ml.integration.MlDistributedFailureIT/testClusterWithTwoMlNodes_StopsDatafeed_GivenJobFailsOnReassign

**Reproduction line:**
`./gradlew ':x-pack:plugin:ml:internalClusterTest' --tests "org.elasticsearch.xpack.ml.integration.MlDistributedFailureIT.testClusterWithTwoMlNodes_StopsDatafeed_GivenJobFailsOnReassign" -Dtests.seed=A3E13461A939BDF6 -Dtests.locale=ar-IQ -Dtests.timezone=America/Porto_Velho -Druntime.java=17`

**Applicable branches:**
master

**Reproduces locally?:**
No

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.xpack.ml.integration.MlDistributedFailureIT&tests.test=testClusterWithTwoMlNodes_StopsDatafeed_GivenJobFailsOnReassign

**Failure excerpt:**
```
java.lang.Exception: Test abandoned because suite timeout was reached.

  at __randomizedtesting.SeedInfo.seed([A3E13461A939BDF6]:0)

```
server/src/test/java/org/elasticsearch/plugins/PluginsServiceTests.java
return loader;
    }
    public void testLoadServiceProviders() throws Exception {
        URLClassLoader fakeClassLoader = buildTestProviderPlugin("integer");
        URLClassLoader fakeClassLoader1 = buildTestProviderPlugin("string");
        try {
            @SuppressWarnings("unchecked")
            Class<? extends Plugin> fakePluginClass = (Class<? extends Plugin>) fakeClassLoader.loadClass("r.FooPlugin");
            @SuppressWarnings("unchecked")
            Class<? extends Plugin> fakePluginClass1 = (Class<? extends Plugin>) fakeClassLoader1.loadClass("r.FooPlugin");
            assertFalse(fakePluginClass.getClassLoader().equals(fakePluginClass1.getClassLoader()));
            getClass().getModule().addUses(TestService.class);
            PluginsService service = newMockPluginsService(List.of(fakePluginClass, fakePluginClass1));
            List<? extends TestService> providers = service.loadServiceProviders(TestService.class);
            assertEquals(2, providers.size());
            assertThat(providers.stream().map(p -> p.name()).toList(), containsInAnyOrder("string", "integer"));
            service = newMockPluginsService(List.of(fakePluginClass));
            providers = service.loadServiceProviders(TestService.class);
            assertEquals(1, providers.size());
            assertThat(providers.stream().map(p -> p.name()).toList(), containsInAnyOrder("integer"));
            service = newMockPluginsService(new ArrayList<>());
            providers = service.loadServiceProviders(TestService.class);
            assertEquals(0, providers.size());
        } finally {
            PrivilegedOperations.closeURLClassLoader(fakeClassLoader);
            PrivilegedOperations.closeURLClassLoader(fakeClassLoader1);
        }
    }
    private static class TestExtensiblePlugin extends Plugin implements ExtensiblePlugin {
        private List<TestExtensionPoint> extensions;