Error logging stack size fix #2498
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Resolves #2472
In the logging framework instrumentation modules, the stack trace lines are truncated after the loop that generates the stack trace strings has completed.
return String.join("\n", lines.subList(0, Math.min(lines.size(), MAX_STACK_SIZE)));
We ran into an issue where a bug in a monitored app created millions of lines via some sort of recursive caused-by assignment. This caused a OOM because of the number of Strings created.
The modules should check the number of lines added to the list as the loop runs to prevent this issue in the future. Note that the String.join() call will remain as-is, since we create and add all the stacktrace lines for the current Throwable in one operation.
Modules: