Skip to content

[5.7-04182022][πŸ’] Fix jump-to-null issue for ObjC async calls. #58399

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

kavon
Copy link
Member

@kavon kavon commented Apr 25, 2022

Cherry-pick of #58397

β€’ Explanation: In rare situations, a miscompilation of async ObjC calls can lead to a runtime crash during the resumption of a task.
β€’ Origination: Regression introduced in solving SR-15703 (#41571)
β€’ Risk: Low. The primary risk is this PR reverts the fix for SR-15703, where an async-throws call to an ObjC method would not resume on the correct executor. The trade-off is that this bug is more of a show-stopper than being on an incorrect executor.

Resolves rdar://91502776

kavon added 2 commits April 25, 2022 12:25
…ows call"

This reverts commit afd26d3 to solve
a critical miscompile caused by a hop_to_executor appearing between
a get_continuation and await_continuation instruction in SIL.

A reimplementation of SR-15703 will be forthcoming.

Fixes rdar://91502776
This reverts commit 01d470c.

Just to be safe, I'm reverting this part of swiftlang#41571
as well, until it can be reimplemented in light of issues where a hop
can appear between a get_continuation and an await_continuation

resolves rdar://91502776
@kavon kavon requested a review from a team as a code owner April 25, 2022 19:27
@kavon
Copy link
Member Author

kavon commented Apr 25, 2022

@swift-ci please test

@kavon kavon added concurrency Feature: umbrella label for concurrency language features r5.7 pending approval labels Apr 26, 2022
@shahmishal shahmishal added this to the Swift 5.7 milestone Apr 27, 2022
@kavon
Copy link
Member Author

kavon commented Apr 27, 2022

We decided this is not the right fix for this issue. It is also rare and has a known workaround. For now, closing this and starting work on a proper fix. Stage 1 is to use this instead: #58477

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
concurrency Feature: umbrella label for concurrency language features πŸ’ release cherry pick Flag: Release branch cherry picks swift 5.7
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants