Circuit Breaker not stopping my search query even though my heap size crosses


I am trying to understand the working of circuit breaker.
I see the default value of "parent-level breaker" is 70% of JVM Heap.
I have set "in flight requests circuit breaker" and "accounting circuit breaker " to 70% of heap.

When I run a query with multiple occurences of wildcards, I see Heap size exceeding the maximum available and cluster reaches red status.
According to my understanding, once the Heap crosses 70%, Circuit Breaker must prevent OOM error.
But I don't see this happening

Is my understanding correct or am I missing something here?

Circuit breakers are a "best effort" protection against a node running out of memory, rather than a guarantee. In released versions the circuit breakers track a number of known memory consumers, but they do not track everything and it is certainly possible to consume too much untracked memory as you seem to be doing.

This changes in 7.0 with the introduction of a real-memory circuit breaker, linked below. Circuit breakers remain a "best effort" protection, but this change improves their accuracy.

Thanks David for your quick response.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.