commit 30ef146819d031ccd875de806c4edad66366d4bc [browse]
Author: Andrew Gerrand
Date: 2014-11-17 13:55:59 +11:00

[release-branch.go1.4] remove cmd/link from nacl test zip

LGTM=dsymonds
R=rsc, dsymonds
CC=golang-codereviews
https://golang.org/cl/179830043

commit daf5d4147118ed3f7bd4526cccf94301ed2f5cbf [browse]
Author: Andrew Gerrand
Date: 2014-11-17 13:46:45 +11:00

[release-branch.go1.4] remove cmd/link

LGTM=dsymonds, minux
R=rsc, dsymonds, minux
CC=golang-codereviews
https://golang.org/cl/176910043

commit c1fc059b080e82e46e5fd588acd370ed778d64cc [browse]
Author: Andrew Gerrand
Date: 2014-11-17 12:56:35 +11:00

[release-branch.go1.4] debug/goobj: move to cmd/internal/goobj

««« CL 174250043 / c16349455e05
debug/goobj: move to cmd/internal/goobj

debug/goobj is not ready to be published but it is
needed for the various binary-reading commands.
Move to cmd/internal/goobj.

(The Go 1.3 release branch deleted it, but that's not
an option anymore due to the command dependencies.
The API is still not vetted nor terribly well designed.)

LGTM=adg, dsymonds
R=adg, dsymonds
CC=golang-codereviews
https://golang.org/cl/174250043
»»»

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/177890043

commit 335ad3db999a0ebcb9325f0ff300ea47ed7bd82c [browse]
Author: Andrew Gerrand
Date: 2014-11-17 09:37:04 +11:00

go1.4rc1

commit b3932baba4e15e175e8f0e040d5e8bbd357a60d8 [browse]
Author: Russ Cox
Date: 2014-11-16 16:44:45 -05:00

runtime: fix sudog leak

The SudoG used to sit on the stack, so it was cheap to allocated
and didn't need to be cleaned up when finished.

For the conversion to Go, we had to move sudog off the stack
for a few reasons, so we added a cache of recently used sudogs
to keep allocation cheap. But we didn't add any of the necessary
cleanup before adding a SudoG to the new cache, and so the cached
SudoGs had stale pointers inside them that have caused all sorts
of awful, hard to debug problems.

CL 155760043 made sure SudoG.elem is cleaned up.
CL 150520043 made sure SudoG.selectdone is cleaned up.

This CL makes sure SudoG.next, SudoG.prev, and SudoG.waitlink
are cleaned up. I should have done this when I did the other two
fields; instead I wasted a week tracking down a leak they caused.

A dangling SudoG.waitlink can point into a sudogcache list that
has been "forgotten" in order to let the GC collect it, but that
dangling .waitlink keeps the list from being collected.
And then the list holding the SudoG with the dangling waitlink
can find itself in the same situation, and so on. We end up
with lists of lists of unusable SudoGs that are still linked into
the object graph and never collected (given the right mix of
non-trivial selects and non-channel synchronization).

More details in golang.org/issue/9110.

Fixes #9110.

LGTM=r
R=r
CC=dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/177870043

clone the repository to get more history