[release/10.0] Fix collided unwind detection #121626
Open
+67 −1
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.
Backport of #121625 to release/10.0
/cc @janvorli
Customer Impact
The issue causes an exception thrown within a non-exceptionally called finally to not to be handled by a proper catch handler in some cases. It was independently reported by two different customers, the RavenDB being one of them. In the RavenDB case, it was causing a deadlock.
Regression
Testing
The fix was verified using a customer provided minimal repro app. This app was added as a regression test to the coreclr tests suite. The issue was missed because none of our coreclr and libraries tests exercise that specific case.
Risk
Low, it just fixes a part of the condition that was always true and replaces it by a proper check for collided unwind.