Set a maximum level of encoding nested arguments of exception traces#28324
Merged
Set a maximum level of encoding nested arguments of exception traces#28324
Conversation
juliusknorr
commented
Aug 5, 2021
| } | ||
|
|
||
| private function encodeArg($arg) { | ||
| private function encodeArg($arg, $nestingLevel = 5) { |
Member
Author
There was a problem hiding this comment.
5 is rather random, but that should be more than enough to get something meaningful out of the arguments. Also too large nesting here will make the log more unreadable.
marcoambrosini
approved these changes
Aug 5, 2021
Member
|
Lint fails |
This will make sure that nested objects or arrays do not cause exceeding the maximum nesting level of functions when parsing arguments of an exception trace Signed-off-by: Julius Härtl <jus@bitgrid.net>
Signed-off-by: Julius Härtl <jus@bitgrid.net>
dd8b239 to
b235a85
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This will make sure that nested objects or arrays do not cause exceeding the maximum nesting level of functions when parsing arguments of an exception trace. In addition the second commit ensures that the class of an encoded object argument is always listed first in the resulting json object.
Found when debugging issues in #25774 with @marcoambrosini where a faulty scss code caused an exception but the arguments passed in the SCSS library contain a deeply nested tree of the parsed scss.
Example patch to reproduce the exception happening:
Without this patch an empty page is shown and just a generic error with xdebug or even a core dump without:
With this PR we get a proper error page and trace in the logs: