- 14 Jan, 2015 6 commits
-
-
Russ Cox authored
Change-Id: I10e60fb6bf2cf3daa2bc1184df7ded0a712a1905 Reviewed-on: https://go-review.googlesource.com/2806Reviewed-by:
Andrew Gerrand <adg@golang.org>
-
Shenghou Ma authored
Fixes #9359. Change-Id: Iba62935b5a14de23d914f433a09a40417d7e88ed Signed-off-by:
Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/1889Reviewed-by:
Russ Cox <rsc@golang.org> Reviewed-by:
Ian Lance Taylor <iant@golang.org> (cherry picked from commit 1c0c611f) Reviewed-on: https://go-review.googlesource.com/2802Reviewed-by:
Andrew Gerrand <adg@golang.org>
-
Keith Randall authored
Pointers to zero-sized values may end up pointing to the next object in memory, and possibly off the end of a span. This can cause memory leaks and/or confuse the garbage collector. By putting the overflow pointer at the end of the bucket, we make sure that pointers to any zero-sized keys or values don't accidentally point to the next object in memory. fixes #9384 Change-Id: I5d434df176984cb0210b4d0195dd106d6eb28f73 Reviewed-on: https://go-review.googlesource.com/1869Reviewed-by:
Russ Cox <rsc@golang.org> (cherry picked from commit fbc56cf0) Reviewed-on: https://go-review.googlesource.com/2801Reviewed-by:
Andrew Gerrand <adg@golang.org>
-
Keith Randall authored
malloc checks kindNoPointers and if it is not set and the object is one pointer in size, it assumes it contains a pointer. So we must set kindNoPointers correctly; it isn't just a hint. Fixes #9425 Change-Id: Ia43da23cc3298d6e3d6dbdf66d32e9678f0aedcf Reviewed-on: https://go-review.googlesource.com/2055Reviewed-by:
Russ Cox <rsc@golang.org> (cherry picked from commit d11f4111) Reviewed-on: https://go-review.googlesource.com/2800Reviewed-by:
Andrew Gerrand <adg@golang.org>
-
Shenghou Ma authored
[release-branch.go1.4] runtime: ignore SIGPROF to foreign threads before cgocallback is fully initialized Some libraries, for example, OpenBLAS, create work threads in a global constructor. If we're doing cpu profiling, it's possible that SIGPROF might come to some of the worker threads before we make our first cgo call. Cgocallback used to terminate the process when that happens, but it's better to miss a couple profiling signals than to abort in this case. Fixes #9456. Change-Id: I112b8e1a6e10e6cc8ac695a4b518c0f577309b6b Reviewed-on: https://go-review.googlesource.com/2141Reviewed-by:
Ian Lance Taylor <iant@golang.org> (cherry picked from commit 5da9c8cd) Reviewed-on: https://go-review.googlesource.com/2789Reviewed-by:
Andrew Gerrand <adg@golang.org>
-
Russ Cox authored
This incorporates the various git-related updates that have happened since the Go 1.4 release. Since Go 1.4.1 will be issued from Git, it is appropriate to replace the Mercurial instructions with Git instructions. Change-Id: Idec041002c7f325c4eee6f25c50423b088b11468 Reviewed-on: https://go-review.googlesource.com/2788Reviewed-by:
Andrew Gerrand <adg@golang.org>
-
- 12 Dec, 2014 1 commit
-
-
David Symonds authored
Change-Id: Ic25d46df6a79c4a18ed3f0a7e900591a115e48e3 Reviewed-on: https://go-review.googlesource.com/1403Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
- 11 Dec, 2014 2 commits
-
-
Andrew Gerrand authored
LGTM=bradfitz, minux, dsymonds R=rsc, bradfitz, iant, dsymonds, minux CC=golang-codereviews https://golang.org/cl/188920043
-
Andrew Gerrand authored
LGTM=dave, dsymonds R=golang-codereviews, dave, dsymonds CC=golang-codereviews https://golang.org/cl/184350043
-
- 10 Dec, 2014 5 commits
-
-
Andrew Gerrand authored
LGTM=bradfitz R=rsc, bradfitz CC=golang-codereviews https://golang.org/cl/189810043
-
Andrew Gerrand authored
LGTM=bradfitz R=iant, rsc, bradfitz CC=golang-codereviews https://golang.org/cl/191750043
-
Andrew Gerrand authored
Also: checkout sub-repos from Mercurial manually instead of using "go get". (for the 1.4 release) LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/190720043
-
Russ Cox authored
I read through and vetted these but others should look too. LGTM=bradfitz, adg R=r, minux, bradfitz, adg CC=adg, golang-codereviews, gri, iant https://golang.org/cl/182560043
-
Andrew Gerrand authored
These are the references that affect current Go users. I left intact references in older release notes; we can figure out what to do with them later. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/186140043
-
- 09 Dec, 2014 3 commits
-
-
Andrew Gerrand authored
LGTM=minux, adg, rsc R=rsc, r, dsymonds, minux, bradfitz, adg, dave, iant CC=golang-codereviews https://golang.org/cl/185190043
-
Andrew Gerrand authored
««« CL 185130043 / 586738173884 misc/cgo/test: skip test8694 on ARM. LGTM=dave, bradfitz, rsc R=golang-codereviews, dave, bradfitz, rsc CC=golang-codereviews https://golang.org/cl/185130043 »»» LGTM=minux R=golang-codereviews, minux, bradfitz CC=golang-codereviews https://golang.org/cl/188870043
-
Russ Cox authored
LGTM=adg R=adg CC=golang-codereviews https://golang.org/cl/189760043
-
- 06 Dec, 2014 1 commit
-
-
Russ Cox authored
««« CL 182580043 / 2d1ab17a670a encoding/xml: remove SyntaxError.Byte It is unused. It was introduced in the CL that added InputOffset. I suspect it was an editing mistake. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/182580043 »»» TBR=bradfitz CC=golang-codereviews https://golang.org/cl/180630043
-
- 05 Dec, 2014 5 commits
-
-
Russ Cox authored
TBR=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/178710043
-
Russ Cox authored
We forgot to do the usual API review. Make that not possible in the future. I'll pull this change over to the main branch too, but it's more important (and only testable) here. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/185050043
-
Russ Cox authored
(That is, changes can originate in the branch. The main branch has diverged enough that this may be necessary.) LGTM=bradfitz R=adg, bradfitz CC=golang-codereviews https://golang.org/cl/187810043
-
Russ Cox authored
««« CL 182480043 / 8d42099cdc23 cmd/go: fix build The new semantics of split require the newline be present. The test was stale. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://golang.org/cl/182480043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/178690043
-
Russ Cox authored
««« CL 182970043 / 573a7b5178c4 cmd/go: avoid use of bufio.Scanner in generate Scanner can't handle stupid long lines and there are reports of stupid long lines in production. Note the issue isn't long "//go:generate" lines, but any long line in any Go source file. To be fair, if you're going to have a stupid long line it's not a bad bet you'll want to run it through go generate, because it's some embeddable asset that has been machine generated. (One could ask why that generation process didn't add a newline or two, but we should cope anyway.) Rewrite the file scanner in "go generate" so it can handle arbitrarily long lines, and only stores in memory those lines that start "//go:generate". Also: Adjust the documentation to make clear that it does not parse the file. Fixes #9143. Fixes #9196. LGTM=rsc, dominik.honnef R=rsc, cespare, minux, dominik.honnef CC=golang-codereviews https://golang.org/cl/182970043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/183060044
-
- 04 Dec, 2014 2 commits
-
-
Russ Cox authored
««« CL 180380043 / d56c648b069f cmd/pprof/internal/commands: add command to open browser on windows While we're at there, also add a message to prompt the user to install Graphviz if "dot" command is not found. Fixes #9178. LGTM=adg, alex.brainman, cookieo9, rsc R=rsc, adg, bradfitz, alex.brainman, cookieo9, smyrman CC=golang-codereviews https://golang.org/cl/180380043 »»» TBR=minux CC=golang-codereviews https://golang.org/cl/186760043
-
Andrew Gerrand authored
««« CL 178660043 / ac865d86fc2a lib/time: update to ICANN time zone database 2014j Fixes #9189. LGTM=dsymonds R=golang-codereviews, dsymonds CC=golang-codereviews https://golang.org/cl/178660043 »»» LGTM=minux, dsymonds R=dsymonds, r, minux CC=golang-codereviews https://golang.org/cl/182460043
-
- 03 Dec, 2014 1 commit
-
-
Russ Cox authored
««« CL 183080043 / b663cc7e6c15 cmd/pprof: fix symbol resolution for remote profiles Fixes #9199. LGTM=iant R=golang-codereviews, iant CC=austin, golang-codereviews, minux https://golang.org/cl/183080043 »»» TBR=iant CC=golang-codereviews https://golang.org/cl/176680043
-
- 02 Dec, 2014 2 commits
-
-
Andrew Gerrand authored
««« CL 183000043 / 871468f5ceaf cmd/go: regenerate doc.go Move change from CL 170770043 to correct file and regenerate docs for changes from CL 164120043. LGTM=adg R=golang-codereviews, adg, bradfitz CC=golang-codereviews https://golang.org/cl/183000043 »»» LGTM=minux R=bradfitz, minux CC=golang-codereviews https://golang.org/cl/181490043
-
Andrew Gerrand authored
LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/179700043
-
- 01 Dec, 2014 2 commits
-
-
Russ Cox authored
««« CL 179680043 / 752cd9199639 runtime: fix hang in GC due to shrinkstack vs netpoll race During garbage collection, after scanning a stack, we think about shrinking it to reclaim some memory. The shrinking code (called while the world is stopped) checked that the status was Gwaiting or Grunnable and then changed the state to Gcopystack, to essentially lock the stack so that no other GC thread is scanning it. The same locking happens for stack growth (and is more necessary there). oldstatus = runtime·readgstatus(gp); oldstatus &= ~Gscan; if(oldstatus == Gwaiting || oldstatus == Grunnable) runtime·casgstatus(gp, oldstatus, Gcopystack); // oldstatus is Gwaiting or Grunnable else runtime·throw("copystack: bad status, not Gwaiting or Grunnable"); Unfortunately, "stop the world" doesn't stop everything. It stops all normal goroutine execution, but the network polling thread is still blocked in epoll and may wake up. If it does, and it chooses a goroutine to mark runnable, and that goroutine is the one whose stack is shrinking, then it can happen that between readgstatus and casgstatus, the status changes from Gwaiting to Grunnable. casgstatus assumes that if the status is not what is expected, it is a transient change (like from Gwaiting to Gscanwaiting and back, or like from Gwaiting to Gcopystack and back), and it loops until the status has been restored to the expected value. In this case, the status has changed semi-permanently from Gwaiting to Grunnable - it won't change again until the GC is done and the world can continue, but the GC is waiting for the status to change back. This wedges the program. To fix, call a special variant of casgstatus that accepts either Gwaiting or Grunnable as valid statuses. Without the fix bug with the extra check+throw in casgstatus, the program below dies in a few seconds (2-10) with GOMAXPROCS=8 on a 2012 Retina MacBook Pro. With the fix, it runs for minutes and minutes. package main import ( "io" "log" "net" "runtime" ) func main() { const N = 100 for i := 0; i < N; i++ { l, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { log.Fatal(err) } ch := make(chan net.Conn, 1) go func() { var err error c1, err := net.Dial("tcp", l.Addr().String()) if err != nil { log.Fatal(err) } ch <- c1 }() c2, err := l.Accept() if err != nil { log.Fatal(err) } c1 := <-ch l.Close() go netguy(c1, c2) go netguy(c2, c1) c1.Write(make([]byte, 100)) } for { runtime.GC() } } func netguy(r, w net.Conn) { buf := make([]byte, 100) for { bigstack(1000) _, err := io.ReadFull(r, buf) if err != nil { log.Fatal(err) } w.Write(buf) } } var g int func bigstack(n int) { var buf [100]byte if n > 0 { bigstack(n - 1) } g = int(buf[0]) + int(buf[99]) } Fixes #9186. LGTM=rlh R=austin, rlh CC=dvyukov, golang-codereviews, iant, khr, r https://golang.org/cl/179680043 »»» TBR=rlh CC=golang-codereviews https://golang.org/cl/184030043
-
Russ Cox authored
««« CL 182160043 / 321d04dea9d6 reflect: Fix reflect.funcLayout. The GC bitmap has two bits per pointer, not one. Fixes #9179 LGTM=iant, rsc R=golang-codereviews, iant, rsc CC=golang-codereviews https://golang.org/cl/182160043 »»» TBR=khr CC=golang-codereviews https://golang.org/cl/180440044
-
- 25 Nov, 2014 2 commits
-
-
Andrew Gerrand authored
««« CL 182750043 / ffe33f1f1f17 doc: tidy up "Projects" page; add Go 1.4 LGTM=r R=r CC=golang-codereviews https://golang.org/cl/182750043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/176350043
-
Russ Cox authored
««« CL 176290043 / 8025b7d1e6c9 go/build: build $GOOS_test.go always We decided to build $GOOS.go always but forgot to test $GOOS_test.go. Fixes #9159. LGTM=r R=r CC=golang-codereviews https://golang.org/cl/176290043 »»» LGTM=r R=r CC=golang-codereviews https://golang.org/cl/182740043
-
- 23 Nov, 2014 1 commit
-
-
Russ Cox authored
««« CL 178120043 / 95f5614b4648 image/jpeg: handle Read returning n > 0, err != nil in d.fill Fixes #9127. LGTM=r R=bradfitz, r CC=golang-codereviews, nigeltao https://golang.org/cl/178120043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/181870043
-
- 22 Nov, 2014 1 commit
-
-
Russ Cox authored
««« CL 176170043 / 61bbf19823d5 cmd/go: fix running pprof on windows. Fixes #9149. LGTM=alex.brainman, rsc R=rsc, dave, alex.brainman CC=golang-codereviews https://golang.org/cl/176170043 »»» TBR=minux CC=golang-codereviews https://golang.org/cl/175550043
-
- 20 Nov, 2014 2 commits
-
-
Russ Cox authored
««« CL 179030043 / e4ab8f908aac runtime: fix atomic operations on non-heap addresses Race detector runtime does not tolerate operations on addresses that was not previously declared with __tsan_map_shadow (namely, data, bss and heap). The corresponding address checks for atomic operations were removed in https://golang.org/cl/111310044 Restore these checks. It's tricker than just not calling into race runtime, because it is the race runtime that makes the atomic operations themselves (if we do not call into race runtime we skip the atomic operation itself as well). So instead we call __tsan_go_ignore_sync_start/end around the atomic operation. This forces race runtime to skip all other processing except than doing the atomic operation itself. Fixes #9136. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/179030043 »»» TBR=dvyukov CC=golang-codereviews https://golang.org/cl/180030043
-
Russ Cox authored
««« CL 176070043 / 500cb52e08e6 build: disable race external linking test on OS X 10.6 and earlier External linking doesn't work there at all. LGTM=bradfitz R=adg, bradfitz CC=golang-codereviews https://golang.org/cl/176070043 »»» LGTM=bradfitz, adg R=adg, bradfitz CC=golang-codereviews https://golang.org/cl/175400043
-
- 19 Nov, 2014 2 commits
-
-
Russ Cox authored
[release-branch.go1.4] runtime: remove assumption that noptrdata data bss noptrbss are ordered and contiguous ««« CL 179980043 / d71cc7e8a0e0 runtime: remove assumption that noptrdata data bss noptrbss are ordered and contiguous The assumption can be violated by external linkers reordering them or inserting non-Go sections in between them. I looked briefly at trying to write out the _go_.o in external linking mode in a way that forced the ordering, but no matter what there's no way to force Go's data and Go's bss to be next to each other. If there is any data or bss from non-Go objects, it's very likely to get stuck in between them. Instead, rewrite the two places we know about that make the assumption. I grepped for noptrdata to look for more and didn't find any. The added race test (os/exec in external linking mode) fails without the changes in the runtime. It crashes with an invalid pointer dereference. Fixes #9133. LGTM=dneil R=dneil CC=dvyukov, golang-codereviews, iant https://golang.org/cl/179980043 »»» LGTM=dneil R=dneil CC=golang-codereviews https://golang.org/cl/173510043
-
Russ Cox authored
««« CL 174450043 / 699cc091a16d undo CL 131750044 / 2d6d44ceb80e Breaks reading from stdin in parent after exec with SysProcAttr{Setpgid: true}. package main import ( "fmt" "os" "os/exec" "syscall" ) func main() { cmd := exec.Command("true") cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} cmd.Run() fmt.Printf("Hit enter:") os.Stdin.Read(make([]byte, 100)) fmt.Printf("Bye\n") } In go1.3, I type enter at the prompt and the program exits. With the CL being rolled back, the program wedges at the prompt. ««« original CL description syscall: SysProcAttr job control changes Making the child's process group the foreground process group and placing the child in a specific process group involves co-ordination between the parent and child that must be done post-fork but pre-exec. LGTM=iant R=golang-codereviews, gobot, iant, mikioh.mikioh CC=golang-codereviews https://golang.org/cl/131750044 »»» LGTM=minux, dneil R=dneil, minux CC=golang-codereviews, iant, michael.p.macinnis https://golang.org/cl/174450043 »»» LGTM=minux R=dneil, minux CC=golang-codereviews https://golang.org/cl/179970043
-
- 18 Nov, 2014 1 commit
-
-
Andrew Gerrand authored
««« CL 178910043 / 3916b070c5f3 doc/go1.4.html: rewrite first sentence to make it clearer The grammar was atrocious, probably the victim of an editing error. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/178910043 »»» LGTM=r R=r CC=golang-codereviews https://golang.org/cl/175310043
-
- 17 Nov, 2014 1 commit
-
-
Andrew Gerrand authored
LGTM=dsymonds R=rsc, dsymonds CC=golang-codereviews https://golang.org/cl/179830043
-