Skip to content

runtime: channel send can write to sleeping goroutine's stack #11116

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

Closed
rsc opened this issue Jun 8, 2015 · 1 comment
Closed

runtime: channel send can write to sleeping goroutine's stack #11116

rsc opened this issue Jun 8, 2015 · 1 comment
Milestone

Comments

@rsc
Copy link
Contributor

rsc commented Jun 8, 2015

A send on an unbuffered channel to a blocked receiver writes directly to the receiver's stack. This violates the assumption made by the garbage collector that all writes to a stack happen while the receiver is executing and go through write barriers. This causes missed writes and incorrect collection of data.

@rsc rsc self-assigned this Jun 8, 2015
@rsc rsc added this to the Go1.5 milestone Jun 8, 2015
@aclements
Copy link
Member

Fixed by 80ec711.

@golang golang locked and limited conversation to collaborators Jun 25, 2016
@rsc rsc removed their assignment Jun 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants