[WIP] [Debug] Avoid fatal handler loops #26559
Closed
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 PR starts to try and solve #26438. For now it's just a WIP with the reproducing test case.
The bug is present when:
The third party error/exception handlers remember the previous handler, and call them when their work is finished. But Symfony's handler has this piece of code:
symfony/src/Symfony/Component/Debug/ErrorHandler.php
Lines 616 to 635 in 874d4d6
Citing @alcohol from #26438:
This operation creates a loop because the handler is altering the order of exception handlers, generating a loop: Symfony's handler is normally registered first by the FrameworkBundle, so it's putting himself as the last one registered with that.
Pinging @nicolas-grekas since he seems to have wrote a great part of the ErrorHandler.