Skip to content

🍒[5.7][Distributed] Prevent remote distributed actor from running deinit body #60055

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

Merged
merged 1 commit into from
Jul 17, 2022

Conversation

ktoso
Copy link
Contributor

@ktoso ktoso commented Jul 14, 2022

Description: Distributed Actor "remote" instances do not have storage initialized; yet we allowed deinit function bodies to run on them, and only prevented the resignID from being called -- this is wrong, we must not run user declared deinit bodies because they might be allowed to touch actor state, resulting in access to non-initialized memory and crashes.
Risk: Low, affects only distributed actor deinits; has no effect on non-DA declarations; SIL changes are very minimal and actually much simpler than current branching code.
Review by: @DougGregor @kavon
Testing: PR testing
Original PR: #60050
Radar: rdar://96980182

@ktoso ktoso requested a review from a team as a code owner July 14, 2022 08:59
@ktoso
Copy link
Contributor Author

ktoso commented Jul 14, 2022

@swift-ci please test

@ktoso ktoso requested review from DougGregor, tomerd and kavon July 14, 2022 08:59
@ktoso ktoso added distributed Feature → concurrency: distributed actor r5.7 labels Jul 15, 2022
@ktoso ktoso merged commit 3a67c1a into swiftlang:release/5.7 Jul 17, 2022
@ktoso ktoso deleted the pick-deinit-test-da branch July 17, 2022 08:43
@AnthonyLatsis AnthonyLatsis added 🍒 release cherry pick Flag: Release branch cherry picks swift 5.7 labels Jan 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
distributed Feature → concurrency: distributed actor 🍒 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