Skip to content

Commit eb1e89a

Browse files
authored
Add link to Circuit Breaker "Data too large" exception message (#113561)
* Add link to CircuitBreaker exception message * Account #113866 * Update docs/changelog/113561.yaml
1 parent b9adc70 commit eb1e89a

File tree

7 files changed

+23
-7
lines changed

7 files changed

+23
-7
lines changed

docs/changelog/113561.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 113561
2+
summary: Add link to Circuit Breaker "Data too large" exception message
3+
area: Infra/Circuit Breakers
4+
type: enhancement
5+
issues: []

server/src/main/java/org/elasticsearch/common/ReferenceDocs.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public enum ReferenceDocs {
8080
FLOOD_STAGE_WATERMARK,
8181
X_OPAQUE_ID,
8282
FORMING_SINGLE_NODE_CLUSTERS,
83+
CIRCUIT_BREAKER_ERRORS,
8384
// this comment keeps the ';' on the next line so every entry above has a trailing ',' which makes the diff for adding new links cleaner
8485
;
8586

server/src/main/java/org/elasticsearch/common/breaker/ChildMemoryCircuitBreaker.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.common.breaker;
1111

1212
import org.apache.logging.log4j.Logger;
13+
import org.elasticsearch.common.ReferenceDocs;
1314
import org.elasticsearch.common.unit.ByteSizeValue;
1415
import org.elasticsearch.indices.breaker.BreakerSettings;
1516
import org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService;
@@ -87,7 +88,8 @@ public void circuitBreak(String fieldName, long bytesNeeded) {
8788
+ memoryBytesLimit
8889
+ "/"
8990
+ ByteSizeValue.ofBytes(memoryBytesLimit)
90-
+ "]";
91+
+ "]; for more information, see "
92+
+ ReferenceDocs.CIRCUIT_BREAKER_ERRORS;
9193
logger.debug(() -> format("%s", message));
9294
throw new CircuitBreakingException(message, bytesNeeded, memoryBytesLimit, durability);
9395
}

server/src/main/java/org/elasticsearch/indices/breaker/HierarchyCircuitBreakerService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.apache.logging.log4j.LogManager;
1313
import org.apache.logging.log4j.Logger;
14+
import org.elasticsearch.common.ReferenceDocs;
1415
import org.elasticsearch.common.breaker.ChildMemoryCircuitBreaker;
1516
import org.elasticsearch.common.breaker.CircuitBreaker;
1617
import org.elasticsearch.common.breaker.CircuitBreakingException;
@@ -474,7 +475,8 @@ public void accept(String key, CircuitBreaker breaker) {
474475
appendBytesSafe(message, (long) (breaker.getUsed() * breaker.getOverhead()));
475476
}
476477
});
477-
message.append("]");
478+
message.append("]; for more information, see ");
479+
message.append(ReferenceDocs.CIRCUIT_BREAKER_ERRORS);
478480
return message.toString();
479481
}
480482

server/src/main/resources/org/elasticsearch/common/reference-docs-links.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
"Content moved to reference-docs-links.txt",
33
"This is a temporary placeholder to satisfy sub check_elasticsearch_links in the docs build",
44
"Remove with @UpdateForV10 (if not before)"
5-
]
5+
]

server/src/main/resources/org/elasticsearch/common/reference-docs-links.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,4 @@ MAX_SHARDS_PER_NODE size-your-shards
4242
FLOOD_STAGE_WATERMARK fix-watermark-errors.html
4343
X_OPAQUE_ID api-conventions.html#x-opaque-id
4444
FORMING_SINGLE_NODE_CLUSTERS modules-discovery-bootstrap-cluster.html#modules-discovery-bootstrap-cluster-joining
45+
CIRCUIT_BREAKER_ERRORS circuit-breaker-errors.html

server/src/test/java/org/elasticsearch/indices/breaker/HierarchyCircuitBreakerServiceTests.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.indices.breaker;
1111

12+
import org.elasticsearch.common.ReferenceDocs;
1213
import org.elasticsearch.common.breaker.ChildMemoryCircuitBreaker;
1314
import org.elasticsearch.common.breaker.CircuitBreaker;
1415
import org.elasticsearch.common.breaker.CircuitBreakingException;
@@ -911,9 +912,11 @@ public double getOverhead() {
911912
),
912913
oneOf(
913914
"[parent] Data too large, data for [test] would be [3/3b], which is larger than the limit of [6/6b], "
914-
+ "usages [child=7/7b, otherChild=8/8b]",
915+
+ "usages [child=7/7b, otherChild=8/8b]; for more information, see "
916+
+ ReferenceDocs.CIRCUIT_BREAKER_ERRORS,
915917
"[parent] Data too large, data for [test] would be [3/3b], which is larger than the limit of [6/6b], "
916-
+ "usages [otherChild=8/8b, child=7/7b]"
918+
+ "usages [otherChild=8/8b, child=7/7b]; for more information, see "
919+
+ ReferenceDocs.CIRCUIT_BREAKER_ERRORS
917920
)
918921
);
919922

@@ -928,7 +931,8 @@ public double getOverhead() {
928931
),
929932
equalTo(
930933
"[parent] Data too large, data for [test] would be [3/3b], which is larger than the limit of [6/6b], "
931-
+ "real usage: [2/2b], new bytes reserved: [1/1b], usages []"
934+
+ "real usage: [2/2b], new bytes reserved: [1/1b], usages []; for more information, see "
935+
+ ReferenceDocs.CIRCUIT_BREAKER_ERRORS
932936
)
933937
);
934938

@@ -945,7 +949,8 @@ public double getOverhead() {
945949
),
946950
equalTo(
947951
"[parent] Data too large, data for [test] would be [-3], which is larger than the limit of [-6], "
948-
+ "real usage: [-2], new bytes reserved: [-1/-1b], usages [child1=-7]"
952+
+ "real usage: [-2], new bytes reserved: [-1/-1b], usages [child1=-7]; for more information, see "
953+
+ ReferenceDocs.CIRCUIT_BREAKER_ERRORS
949954
)
950955
);
951956
} finally {

0 commit comments

Comments
 (0)