diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java b/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java index 2c02abab9dc1d..563b8b0b7eb68 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java @@ -2457,9 +2457,15 @@ public void ensureEstimatedStats() { final CircuitBreakerService breakerService = getInstanceFromNode(CircuitBreakerService.class, nodeAndClient.node); CircuitBreaker fdBreaker = breakerService.getBreaker(CircuitBreaker.FIELDDATA); assertThat("Fielddata breaker not reset to 0 on node: " + name, fdBreaker.getUsed(), equalTo(0L)); - CircuitBreaker acctBreaker = breakerService.getBreaker(CircuitBreaker.ACCOUNTING); - assertThat("Accounting breaker not reset to 0 on node: " + name + ", are there still Lucene indices around?", - acctBreaker.getUsed(), equalTo(0L)); + try { + assertBusy(() -> { + CircuitBreaker acctBreaker = breakerService.getBreaker(CircuitBreaker.ACCOUNTING); + assertThat("Accounting breaker not reset to 0 on node: " + name + ", are there still Lucene indices around?", + acctBreaker.getUsed(), equalTo(0L)); + }); + } catch (Exception e) { + throw new AssertionError("Exception during check for accounting breaker reset to 0", e); + } // Anything that uses transport or HTTP can increase the // request breaker (because they use bigarrays), because of // that the breaker can sometimes be incremented from ping @@ -2474,7 +2480,7 @@ public void ensureEstimatedStats() { assertThat("Request breaker not reset to 0 on node: " + name, reqBreaker.getUsed(), equalTo(0L)); }); } catch (Exception e) { - fail("Exception during check for request breaker reset to 0: " + e); + throw new AssertionError("Exception during check for request breaker reset to 0", e); } NodeService nodeService = getInstanceFromNode(NodeService.class, nodeAndClient.node);