Skip to content
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

runtime: sweep increased allocation count crash on arm64 [1.13 backport] #36361

Closed
gopherbot opened this issue Jan 2, 2020 · 3 comments
Closed
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Milestone

Comments

@gopherbot
Copy link

@aclements requested issue #36101 to be considered for backport to the next 1.13 minor release.

@gopherbot, please open a backport to Go 1.13

@gopherbot gopherbot added the CherryPickCandidate Used during the release process for point releases label Jan 2, 2020
@gopherbot gopherbot added this to the Go1.13.6 milestone Jan 2, 2020
@gopherbot
Copy link
Author

Change https://golang.org/cl/213683 mentions this issue: [release-branch.go1.13] runtime: ensure memmove write pointer atomically on ARM64

@toothrot toothrot added CherryPickApproved Used during the release process for point releases and removed CherryPickCandidate Used during the release process for point releases labels Jan 8, 2020
@toothrot
Copy link
Contributor

toothrot commented Jan 8, 2020

Approving as this is a serious problem with no workaround.

@gopherbot
Copy link
Author

Closed by merging acc723a to release-branch.go1.13.

gopherbot pushed a commit that referenced this issue Jan 8, 2020
…lly on ARM64

If a pointer write is not atomic, if the GC is running
concurrently, it may observe a partially updated pointer, which
may point to unallocated or already dead memory. Most pointer
writes, like the store instructions generated by the compiler,
are already atomic. But we still need to be careful in places
like memmove. In memmove, we don't know which bits are pointers
(or too expensive to query), so we ensure that all aligned
pointer-sized units are written atomically.

Fixes #36361.
Updates #36101.

Change-Id: I1b3ca24c6b1ac8a8aaf9ee470115e9a89ec1b00b
Reviewed-on: https://go-review.googlesource.com/c/go/+/212626
Reviewed-by: Austin Clements <austin@google.com>
(cherry picked from commit ffbc027)
Reviewed-on: https://go-review.googlesource.com/c/go/+/213683
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@golang golang locked and limited conversation to collaborators Jan 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

3 participants