aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java
index f02d3db1a3b..88ef67e1854 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java
@@ -1036,7 +1036,9 @@ public class MessageBusVisitorSession implements VisitorSession {
params.getControlHandler().onProgress(progress.getToken());
statistics.add(reply.getVisitorStatistics());
params.getControlHandler().onVisitorStatistics(statistics);
- if ( ! reply.getTrace().getRoot().isEmpty() ) {
+ // A visitor session might be long lived so we need a safeguard against blowing the memory if tracing
+ // has been enabled.
+ if ( ! reply.getTrace().getRoot().isEmpty() && (trace.getRoot().getNumChildren() < 1000)) {
trace.getRoot().addChild(reply.getTrace().getRoot());
}