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: pageAlloc.searchAddr may point to unmapped memory in discontiguous heaps, violating its invariant [1.14 backport] #40192

Open
gopherbot opened this issue Jul 13, 2020 · 4 comments

Comments

@gopherbot
Copy link

@gopherbot gopherbot commented Jul 13, 2020

@mknyszek requested issue #40191 to be considered for backport to the next 1.14 minor release.

@gopherbot Please open a backport issue to Go 1.14.

@dmitshur
Copy link
Member

@dmitshur dmitshur commented Jul 14, 2020

@mknyszek Can you please include a short rationale about why the backport might be needed? (Per MinorReleases.) Thanks.

@mknyszek
Copy link
Contributor

@mknyszek mknyszek commented Jul 14, 2020

Yes, sorry. I mentioned it in #40191 but forgot to copy it here.

This issue should not be considered a blocking issue for Go 1.15 because the bug was technically introduced in Go 1.14, but it should be fixed and probably backported too, since it can cause failures with no workaround.

Specifically, this bug causes a segfault that can happen to anyone for reasons outside of their control, with no workaround at the user level. Although it's generally very rare because OSes generally try to keep the mapped regions contiguous, if future versions of e.g. Linux decided not to try so hard to keep mmap'd regions contiguous (and it ignored all our hints), then someone might see a consistent segfault. Currently this only happens on Fuchsia (a port we don't support ourselves) but the problem theoretically applies to all platforms just at varying degrees of rarity.

@andybons andybons modified the milestones: Go1.14.6, Go1.14.7 Jul 16, 2020
@toothrot
Copy link
Contributor

@toothrot toothrot commented Jul 23, 2020

Approving for backport. This is a serious issue with no workaround.

@gopherbot
Copy link
Author

@gopherbot gopherbot commented Jul 31, 2020

Change https://golang.org/cl/246197 mentions this issue: [release-branch.go.1.14] runtime: validate candidate searchAddr in pageAlloc.find

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.