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: backport CLs 33339 and 35353 #18700

Closed
aclements opened this issue Jan 18, 2017 · 4 comments

Comments

Projects
None yet
3 participants
@aclements
Copy link
Member

commented Jan 18, 2017

If we do a 1.7.5 release, backport CLs 33339 and 35353, which add diagnostics for and may mitigate #16083.

@aclements aclements added this to the Go1.7.5 milestone Jan 18, 2017

@bradfitz

This comment has been minimized.

Copy link
Member

commented Jan 24, 2017

Austin, I'll let you send these two. These aren't trivial like the others.

@gopherbot

This comment has been minimized.

Copy link

commented Jan 25, 2017

CL https://golang.org/cl/35678 mentions this issue.

@gopherbot

This comment has been minimized.

Copy link

commented Jan 25, 2017

CL https://golang.org/cl/35677 mentions this issue.

gopherbot pushed a commit that referenced this issue Jan 25, 2017

[release-branch.go1.7] runtime: improve diagnostics for "scan missed …
…a g"

Updates #18700 (backport)

Currently there are no diagnostics for mark root check during marking.
Fix this by printing out the same diagnostics we print during mark
termination.

Also, drop the allglock before throwing. Holding that across a throw
causes a self-deadlock with tracebackothers.

For #16083.

Change-Id: Ib605f3ae0c17e70704b31d8378274cfaa2307dc2
Reviewed-on: https://go-review.googlesource.com/35677
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>

gopherbot pushed a commit that referenced this issue Jan 25, 2017

[release-branch.go1.7] runtime: force workers out before checking mar…
…k roots

Fixes #18700 (backport)

Currently we check that all roots are marked as soon as gcMarkDone
decides to transition from mark 1 to mark 2. However, issue #16083
indicates that there may be a race where we try to complete mark 1
while a worker is still scanning a stack, causing the root mark check
to fail.

We don't yet understand this race, but as a simple mitigation, move
the root check to after gcMarkDone performs a ragged barrier, which
will force any remaining workers to finish their current job.

Updates #16083. This may "fix" it, but it would be better to
understand and fix the underlying race.

Change-Id: I1af9ce67bd87ade7bc2a067295d79c28cd11abd2
Reviewed-on: https://go-review.googlesource.com/35678
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@bradfitz

This comment has been minimized.

Copy link
Member

commented Jan 26, 2017

Submitted to 1.7 branch.

@bradfitz bradfitz closed this Jan 26, 2017

@golang golang locked and limited conversation to collaborators Jan 26, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.