diff options
-rwxr-xr-x | documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusVisitorSession.java | 6 |
1 files changed, 5 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 675f20e3807..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,11 @@ public class MessageBusVisitorSession implements VisitorSession { params.getControlHandler().onProgress(progress.getToken()); statistics.add(reply.getVisitorStatistics()); params.getControlHandler().onVisitorStatistics(statistics); - trace.getRoot().addChild(reply.getTrace().getRoot()); + // 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()); + } if (params.getDynamicallyIncreaseMaxBucketsPerVisitor() && (reply.getVisitorStatistics().getDocumentsReturned() |