LOG4J2-3060 Fix integer overflow in DefaultErrorHandler #481
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.
When configured incorrectly, the ErrorHandler::error method will be called very often. As an example of such behavior, you can try stopping the appender manually.
This will result in
ErrorHandler::error("Attempted to append to non-started appender {...}")
which may or may not be called often. In our scenario, this happened ~4k-20k times per second. Although everything seems normal at first, exceptionCount keeps getting incremented until it overflows after 2^31 increments.When it overflows, every such method call will enter the branch leading to very high CPU consumption in useless code and a significant spike in
System.out
throughput