]> Cypherpunks.ru repositories - gostls13.git/log
gostls13.git
7 years ago[release-branch.go1.8] go1.8rc1 go1.8rc1
Chris Broadfoot [Tue, 10 Jan 2017 19:19:37 +0000 (11:19 -0800)]
[release-branch.go1.8] go1.8rc1

Change-Id: I68a99a4d750357dd59eb48f7c05b4dc08c64c92d
Reviewed-on: https://go-review.googlesource.com/35097
Run-TryBot: Chris Broadfoot <cbro@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/compile: disable flaky test
David Chase [Tue, 10 Jan 2017 13:29:34 +0000 (08:29 -0500)]
cmd/compile: disable flaky test

The test is inherently racy and vulnerable to starvation,
and within all.bash on some platforms that means it flakes.
Test is kept because it can be useful standalone to verify
behavior of GOEXPERIMENT=preeemptibleloops, and there is
likely to be further development of this feature in the
future.

There's also some question as to why it is flaking, because
though technically this is permitted, it's very odd in this
simple case.

Fixes #18589.

Change-Id: Ia0dd9037285c4a03122da4012c96981c9cc43b60
Reviewed-on: https://go-review.googlesource.com/35051
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agoruntime: debug prints for spanBytesAlloc underflow
Austin Clements [Tue, 20 Dec 2016 03:55:53 +0000 (22:55 -0500)]
runtime: debug prints for spanBytesAlloc underflow

Updates #18043.

Change-Id: I24e687fdd5521c48b672987f15f0d5de9f308884
Reviewed-on: https://go-review.googlesource.com/34612
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Rick Hudson <rlh@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agocmd/compile: insert scheduling checks on loop backedges
David Chase [Thu, 10 Nov 2016 21:03:47 +0000 (16:03 -0500)]
cmd/compile: insert scheduling checks on loop backedges

Loop breaking with a counter.  Benchmarked (see comments),
eyeball checked for sanity on popular loops.  This code
ought to handle loops in general, and properly inserts phi
functions in cases where the earlier version might not have.

Includes test, plus modifications to test/run.go to deal with
timeout and killing looping test.  Tests broken by the addition
of extra code (branch frequency and live vars) for added
checks turn the check insertion off.

If GOEXPERIMENT=preemptibleloops, the compiler inserts reschedule
checks on every backedge of every reducible loop.  Alternately,
specifying GO_GCFLAGS=-d=ssa/insert_resched_checks/on will
enable it for a single compilation, but because the core Go
libraries contain some loops that may run long, this is less
likely to have the desired effect.

This is intended as a tool to help in the study and diagnosis
of GC and other latency problems, now that goal STW GC latency
is on the order of 100 microseconds or less.

Updates #17831.
Updates #10958.

Change-Id: I6206c163a5b0248e3f21eb4fc65f73a179e1f639
Reviewed-on: https://go-review.googlesource.com/33910
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
7 years agocmd/compile: file line number for //go:xxx directives
Robert Griesemer [Thu, 29 Dec 2016 01:29:25 +0000 (17:29 -0800)]
cmd/compile: file line number for //go:xxx directives

Minimally invasive; fixes a regression from 1.7.

Fixes #18459.

Change-Id: I93b3b5c05706eaff8ae97a237f770838c1f8778c
Reviewed-on: https://go-review.googlesource.com/34721
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agonet/http: preserve original HTTP method when possible
Joe Tsai [Mon, 9 Jan 2017 09:00:36 +0000 (01:00 -0800)]
net/http: preserve original HTTP method when possible

In Go1.7, a 301, 302, or 303 redirect on a HEAD method, would still
cause the following redirects to still use a HEAD.
In CL/29852 this behavior was changed such that those codes always
caused a redirect with the GET method. Fix this such that both
GET and HEAD will preserve the method.

Fixes #18570

Change-Id: I4bfe69872a30799419e3fad9178f907fe439b449
Reviewed-on: https://go-review.googlesource.com/34981
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agoruntime: add table of size classes in a comment
Austin Clements [Sun, 25 Dec 2016 01:03:10 +0000 (17:03 -0800)]
runtime: add table of size classes in a comment

Change-Id: I52fae67c9aeceaa23e70f2ef0468745b354f8c75
Reviewed-on: https://go-review.googlesource.com/34932
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
7 years agogo/types: fix typo
gulyasm [Sat, 7 Jan 2017 22:37:57 +0000 (23:37 +0100)]
go/types: fix typo

Fixes #18562

Change-Id: Ic195a8606f09876e2667e4ef720b84a07d316f4a
Reviewed-on: https://go-review.googlesource.com/34939
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoos/user: document the difference between Username and Name
Kevin Burke [Fri, 9 Dec 2016 06:22:24 +0000 (22:22 -0800)]
os/user: document the difference between Username and Name

Fixes #18261.

Change-Id: I4bd7363aac4e62461f61fd95b3c7a18063412182
Reviewed-on: https://go-review.googlesource.com/34241
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoall: fix misspellings
shawnps [Sat, 7 Jan 2017 16:23:11 +0000 (08:23 -0800)]
all: fix misspellings

Change-Id: I429637ca91f7db4144f17621de851a548dc1ce76
Reviewed-on: https://go-review.googlesource.com/34923
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agonet/http: don't do a background read if we've already done one
Ian Lance Taylor [Sat, 7 Jan 2017 04:41:14 +0000 (20:41 -0800)]
net/http: don't do a background read if we've already done one

Fixes #18535

Change-Id: I9e49d33ce357a534529a6b0fcdbc09ff4fa98622
Reviewed-on: https://go-review.googlesource.com/34920
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/go: add link to env varible guide to set custom GOPATH
Jaana Burcu Dogan [Fri, 6 Jan 2017 23:09:10 +0000 (15:09 -0800)]
cmd/go: add link to env varible guide to set custom GOPATH

Also moves the GOPATH env variable guide to
golang.org/wiki/SettingGOPATH.

Fixes #18294.

Change-Id: I88a2ce550df7466f8d2388d86bc8476dcf3c2ad6
Reviewed-on: https://go-review.googlesource.com/34918
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agovendor: update golang.org/x/crypto/chacha20poly1305
Mikio Hara [Thu, 5 Jan 2017 23:27:37 +0000 (08:27 +0900)]
vendor: update golang.org/x/crypto/chacha20poly1305

Updates golang.org/x/crypto/chacha20poly1305 to rev cb497ae for:
- chacha20poly1305: fix detection of BMI on amd64 (https://golang.org/cl/34852)
- chacha20poly1305: fix typos (https://golang.org/cl/34536)
- chacha20poly1305: fix typos (https://golang.org/cl/33855)
- chacha20poly1305: fix build constraints (https://golang.org/cl/32391)

Change-Id: I3a608b5e21b3a72b5aaa5d0afe6c6cffbb1d6fc1
Reviewed-on: https://go-review.googlesource.com/34871
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agodoc: update CONTRIBUTING.md a bit, mention proposal process
Brad Fitzpatrick [Fri, 6 Jan 2017 22:45:17 +0000 (22:45 +0000)]
doc: update CONTRIBUTING.md a bit, mention proposal process

Fixes #18550

Change-Id: Ia08d0ef6964216fcc14fa63c2ba378d68daa2c02
Reviewed-on: https://go-review.googlesource.com/34917
Reviewed-by: Chris Broadfoot <cbro@golang.org>
7 years agonet: disable RFC 6724 Rule 9 for IPv4 addresses
Matthew Dempsky [Fri, 6 Jan 2017 20:25:32 +0000 (12:25 -0800)]
net: disable RFC 6724 Rule 9 for IPv4 addresses

Rule 9 arguably doesn't make sense for IPv4 addresses, and so far it
has only caused problems (#13283, #18518). Disable it until we hear
from users that actually want/need it.

Fixes #18518.

Change-Id: I7b0dd75d03819cab8e0cd4c29f0c1dc8d2e9c179
Reviewed-on: https://go-review.googlesource.com/34914
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agocmd/compile: rewrite literal.method to ensure full initialization
David Chase [Fri, 23 Dec 2016 17:00:07 +0000 (12:00 -0500)]
cmd/compile: rewrite literal.method to ensure full initialization

CALLPART of STRUCTLIT did not check for incomplete initialization
of struct; modify PTRLIT treatment to force zeroing.

Test for structlit, believe this might have also failed for
arraylit.

Fixes #18410.

Change-Id: I511abf8ef850e300996d40568944665714efe1fc
Reviewed-on: https://go-review.googlesource.com/34622
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
7 years agodoc: explain how to set GOPATH to a custom value
Jaana Burcu Dogan [Thu, 5 Jan 2017 20:28:06 +0000 (12:28 -0800)]
doc: explain how to set GOPATH to a custom value

Updates #18294.

Change-Id: Ib6b84243a15ed921cc8960e5fa355fd7594181e6
Reviewed-on: https://go-review.googlesource.com/34821
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoruntime: fix corruption crash/race between select and stack growth
Russ Cox [Fri, 6 Jan 2017 05:54:24 +0000 (00:54 -0500)]
runtime: fix corruption crash/race between select and stack growth

To implement the blocking of a select, a goroutine builds a list of
offers to communicate (pseudo-g's, aka sudog), one for each case,
queues them on the corresponding channels, and waits for another
goroutine to complete one of those cases and wake it up. Obviously it
is not OK for two other goroutines to complete multiple cases and both
wake the goroutine blocked in select. To make sure that only one
branch of the select is chosen, all the sudogs contain a pointer to a
shared (single) 'done uint32', which is atomically cas'ed by any
interested goroutines. The goroutine that wins the cas race gets to
wake up the select. A complication is that 'done uint32' is stored on
the stack of the goroutine running the select, and that stack can move
during the select due to stack growth or stack shrinking.

The relevant ordering to block and unblock in select is:

1. Lock all channels.
2. Create list of sudogs and queue sudogs on all channels.
3. Switch to system stack, mark goroutine as asleep,
   unlock all channels.
4. Sleep until woken.
5. Wake up on goroutine stack.
6. Lock all channels.
7. Dequeue sudogs from all channels.
8. Free list of sudogs.
9. Unlock all channels.

There are two kinds of stack moves: stack growth and stack shrinking.
Stack growth happens while the original goroutine is running.
Stack shrinking happens asynchronously, during garbage collection.

While a channel listing a sudog is locked by select in this process,
no other goroutine can attempt to complete communication on that
channel, because that other goroutine doesn't hold the lock and can't
find the sudog. If the stack moves while all the channel locks are
held or when the sudogs are not yet or no longer queued in the
channels, no problem, because no goroutine can get to the sudogs and
therefore to selectdone. We only need to worry about the stack (and
'done uint32') moving with the sudogs queued in unlocked channels.

Stack shrinking can happen any time the goroutine is stopped.
That code already acquires all the channel locks before doing the
stack move, so it avoids this problem.

Stack growth can happen essentially any time the original goroutine is
running on its own stack (not the system stack). In the first half of
the select, all the channels are locked before any sudogs are queued,
and the channels are not unlocked until the goroutine has stopped
executing on its own stack and is asleep, so that part is OK. In the
second half of the select, the goroutine wakes up on its own goroutine
stack and immediately locks all channels. But the actual call to lock
might grow the stack, before acquiring any locks. In that case, the
stack is moving with the sudogs queued in unlocked channels. Not good.
One goroutine has already won a cas on the old stack (that goroutine
woke up the selecting goroutine, moving it out of step 4), and the
fact that done = 1 now should prevent any other goroutines from
completing any other select cases. During the stack move, however,
sudog.selectdone is moved from pointing to the old done variable on
the old stack to a new memory location on the new stack. Another
goroutine might observe the moved pointer before the new memory
location has been initialized. If the new memory word happens to be
zero, that goroutine might win a cas on the new location, thinking it
can now complete the select (again). It will then complete a second
communication (reading from or writing to the goroutine stack
incorrectly) and then attempt to wake up the selecting goroutine,
which is already awake.

The scribbling over the goroutine stack unexpectedly is already bad,
but likely to go unnoticed, at least immediately. As for the second
wakeup, there are a variety of ways it might play out.

* The goroutine might not be asleep.
That will produce a runtime crash (throw) like in #17007:

runtime: gp: gp=0xc0422dcb60, goid=2299, gp->atomicstatus=8
runtime:  g:  g=0xa5cfe0, goid=0,  g->atomicstatus=0
fatal error: bad g->status in ready

Here, atomicstatus=8 is copystack; the second, incorrect wakeup is
observing that the selecting goroutine is in state "Gcopystack"
instead of "Gwaiting".

* The goroutine might be sleeping in a send on a nil chan.
If it wakes up, it will crash with 'fatal error: unreachable'.

* The goroutine might be sleeping in a send on a non-nil chan.
If it wakes up, it will crash with 'fatal error: chansend:
spurious wakeup'.

* The goroutine might be sleeping in a receive on a nil chan.
If it wakes up, it will crash with 'fatal error: unreachable'.

* The goroutine might be sleeping in a receive on a non-nil chan.
If it wakes up, it will silently (incorrectly!) continue as if it
received a zero value from a closed channel, leaving a sudog queued on
the channel pointing at that zero vaue on the goroutine's stack; that
space will be reused as the goroutine executes, and when some other
goroutine finally completes the receive, it will do a stray write into
the goroutine's stack memory, which may cause problems. Then it will
attempt the real wakeup of the goroutine, leading recursively to any
of the cases in this list.

* The goroutine might have been running a select in a finalizer
(I hope not!) and might now be sleeping waiting for more things to
finalize. If it wakes up, as long as it goes back to sleep quickly
(before the real GC code tries to wake it), the spurious wakeup does
no harm (but the stack was still scribbled on).

* The goroutine might be sleeping in gcParkAssist.
If it wakes up, that will let the goroutine continue executing a bit
earlier than we would have liked. Eventually the GC will attempt the
real wakeup of the goroutine, leading recursively to any of the cases
in this list.

* The goroutine cannot be sleeping in bgsweep, because the background
sweepers never use select.

* The goroutine might be sleeping in netpollblock.
If it wakes up, it will crash with 'fatal error: netpollblock:
corrupted state'.

* The goroutine might be sleeping in main as another thread crashes.
If it wakes up, it will exit(0) instead of letting the other thread
crash with a non-zero exit status.

* The goroutine cannot be sleeping in forcegchelper,
because forcegchelper never uses select.

* The goroutine might be sleeping in an empty select - select {}.
If it wakes up, it will return to the next line in the program!

* The goroutine might be sleeping in a non-empty select (again).
In this case, it will wake up spuriously, with gp.param == nil (no
reason for wakeup), but that was fortuitously overloaded for handling
wakeup due to a closing channel and the way it is handled is to rerun
the select, which (accidentally) handles the spurious wakeup
correctly:

if cas == nil {
// This can happen if we were woken up by a close().
// TODO: figure that out explicitly so we don't need this loop.
goto loop
}

Before looping, it will dequeue all the sudogs on all the channels
involved, so that no other goroutine will attempt to wake it.
Since the goroutine was blocked in select before, being blocked in
select again when the spurious wakeup arrives may be quite likely.
In this case, the spurious wakeup does no harm (but the stack was
still scribbled on).

* The goroutine might be sleeping in semacquire (mutex slow path).
If it wakes up, that is taken as a signal to try for the semaphore
again, not a signal that the semaphore is now held, but the next
iteration around the loop will queue the sudog a second time, causing
a cycle in the wakeup list for the given address. If that sudog is the
only one in the list, when it is eventually dequeued, it will
(due to the precise way the code is written) leave the sudog on the
queue inactive with the sudog broken. But the sudog will also be in
the free list, and that will eventually cause confusion.

* The goroutine might be sleeping in notifyListWait, for sync.Cond.
If it wakes up, (*Cond).Wait returns. The docs say "Unlike in other
systems, Wait cannot return unless awoken by Broadcast or Signal,"
so the spurious wakeup is incorrect behavior, but most callers do not
depend on that fact. Eventually the condition will happen, attempting
the real wakeup of the goroutine and leading recursively to any of the
cases in this list.

* The goroutine might be sleeping in timeSleep aka time.Sleep.
If it wakes up, it will continue running, leaving a timer ticking.
When that time bomb goes off, it will try to ready the goroutine
again, leading to any one of the cases in this list.

* The goroutine cannot be sleeping in timerproc,
because timerproc never uses select.

* The goroutine might be sleeping in ReadTrace.
If it wakes up, it will print 'runtime: spurious wakeup of trace
reader' and return nil. All future calls to ReadTrace will print
'runtime: ReadTrace called from multiple goroutines simultaneously'.
Eventually, when trace data is available, a true wakeup will be
attempted, leading to any one of the cases in this list.

None of these fatal errors appear in any of the trybot or dashboard
logs. The 'bad g->status in ready' that happens if the goroutine is
running (the most likely scenario anyway) has happened once on the
dashboard and eight times in trybot logs. Of the eight, five were
atomicstatus=8 during net/http tests, so almost certainly this bug.
The other three were atomicstatus=2, all near code in select,
but in a draft CL by Dmitry that was rewriting select and may or may
not have had its own bugs.

This bug has existed since Go 1.4. Until then the select code was
implemented in C, 'done uint32' was a C stack variable 'uint32 done',
and C stacks never moved. I believe it has become more common recently
because of Brad's work to run more and more tests in net/http in
parallel, which lengthens race windows.

The fix is to run step 6 on the system stack,
avoiding possibility of stack growth.

Fixes #17007 and possibly other mysterious failures.

Change-Id: I9d6575a51ac96ae9d67ec24da670426a4a45a317
Reviewed-on: https://go-review.googlesource.com/34835
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
7 years agoruntime: expand HACKING.md
Austin Clements [Mon, 12 Dec 2016 18:56:11 +0000 (13:56 -0500)]
runtime: expand HACKING.md

This adds high-level descriptions of the scheduler structures, the
user and system stacks, error handling, and synchronization.

Change-Id: I1eed97c6dd4a6e3d351279e967b11c6e64898356
Reviewed-on: https://go-review.googlesource.com/34290
Reviewed-by: Rick Hudson <rlh@golang.org>
7 years agoruntime: update big mgc.go comment
Austin Clements [Fri, 23 Dec 2016 00:30:23 +0000 (17:30 -0700)]
runtime: update big mgc.go comment

The comment describing the overall GC algorithm at the top of mgc.go
has gotten woefully out-of-date (and was possibly never
correct/complete). Update it to reflect the current workings of the
GC and the set of phases that we now divide it into.

Change-Id: I02143c0ebefe9d4cd7753349dab8045f0973bf95
Reviewed-on: https://go-review.googlesource.com/34711
Reviewed-by: Rick Hudson <rlh@golang.org>
7 years agonet/http: better failure in TestTransportPersistConnLeak
Russ Cox [Fri, 6 Jan 2017 06:17:24 +0000 (01:17 -0500)]
net/http: better failure in TestTransportPersistConnLeak

If one of the c.Get(ts.URL) results in an error, the child goroutine
calls t.Errorf, but the test goroutine gets stuck waiting for <-gotReqCh,
so the test hangs and the program is eventually killed (after 10 minutes!).
Whatever might have been printed to t.Errorf is never seen.
Adjust test so that the test fails cleanly in this case.

Still trying to debug why c.Get might fail.
It seems to have something to do with occasional connection
failures on macOS Sierra.

Change-Id: Ia797787bd51ea7cd6deb1192aec89c331c4f2c48
Reviewed-on: https://go-review.googlesource.com/34836
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoruntime: use 4K as the boundary of legal pointers
Austin Clements [Fri, 6 Jan 2017 14:44:41 +0000 (09:44 -0500)]
runtime: use 4K as the boundary of legal pointers

Currently, the check for legal pointers in stack copying uses
_PageSize (8K) as the minimum legal pointer. By default, Linux won't
let you map under 64K, but

1) it's less clear what other OSes allow or will allow in the future;

2) while mapping the first page is a terrible idea, mapping anywhere
above that is arguably more justifiable;

3) the compiler only assumes the first physical page (4K) is never
mapped.

Make the runtime consistent with the compiler and more robust by
changing the bad pointer check to use 4K as the minimum legal pointer.

This came out of discussions on CLs 34663 and 34719.

Change-Id: Idf721a788bd9699fb348f47bdd083cf8fa8bd3e5
Reviewed-on: https://go-review.googlesource.com/34890
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agonet: Fix grammar error
Kevin Burke [Fri, 6 Jan 2017 01:49:08 +0000 (17:49 -0800)]
net: Fix grammar error

Change-Id: I1c2e17b25ca91be37a18c47e70678c3753070fb8
Reviewed-on: https://go-review.googlesource.com/34827
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
7 years agonet: display the complete BUGS section on every platform
Mikio Hara [Tue, 27 Dec 2016 21:14:01 +0000 (06:14 +0900)]
net: display the complete BUGS section on every platform

We cannot assume that the platform running documentation service is
the target platform.

Change-Id: I241ed6f8778169faac9ef49e11dcd40f7422cccc
Reviewed-on: https://go-review.googlesource.com/34750
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agocmd/compile: avoid n.Right nil dereference on non-existent interface methods
Emmanuel Odeke [Thu, 5 Jan 2017 02:21:13 +0000 (19:21 -0700)]
cmd/compile: avoid n.Right nil dereference on non-existent interface methods

Fixes #18392.

Avoid nil dereferencing n.Right when dealing with non-existent
self referenced interface methods e.g.
type A interface{
  Fn(A.Fn)
}

Instead, infer the symbol name from n.Sym itself.

Change-Id: I60d5f8988e7318693e5c8da031285d8d7347b771
Reviewed-on: https://go-review.googlesource.com/34817
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
7 years agodoc: add go get -insecure change to go1.8.html
Brad Fitzpatrick [Thu, 5 Jan 2017 18:35:06 +0000 (18:35 +0000)]
doc: add go get -insecure change to go1.8.html

Change-Id: I184c86edaaaa71c26bc7360c8b995015f30fe137
Reviewed-on: https://go-review.googlesource.com/34819
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agocmd/go: use ProxyFromEnvironment in -insecure mode also
Brad Fitzpatrick [Thu, 5 Jan 2017 18:10:19 +0000 (18:10 +0000)]
cmd/go: use ProxyFromEnvironment in -insecure mode also

Be consistent on whether the http proxy environment variables are
respected regardless of whether -insecure is used.

Updates #18519

Change-Id: Ib157eaacfd342dd3bfcd03e64da18c98c609cae3
Reviewed-on: https://go-review.googlesource.com/34818
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agox/crypto/chacha20poly1305: fix detection of BMI on AMD64
Lion Yang [Wed, 4 Jan 2017 22:25:59 +0000 (06:25 +0800)]
x/crypto/chacha20poly1305: fix detection of BMI on AMD64

This change uses runtime.support_bmi2 as an additional condition
to examine the usability of AVX2 version algorithm, fixes
the crash on the platfrom which supports AVX2 but not support BMI2.

Fixes #18512

Change-Id: I408c0844ae2eb242dacf70cb9e8cec1b8f3bd941
Reviewed-on: https://go-review.googlesource.com/34851
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agocrypto: detect BMI usability on AMD64 for sha1 and sha256
Lion Yang [Wed, 4 Jan 2017 21:13:53 +0000 (05:13 +0800)]
crypto: detect BMI usability on AMD64 for sha1 and sha256

The existing implementations on AMD64 only detects AVX2 usability,
when they also contains BMI (bit-manipulation instructions).
These instructions crash the running program as 'unknown instructions'
on the architecture, e.g. i3-4000M, which supports AVX2 but not
support BMI.

This change added the detections for BMI1 and BMI2 to AMD64 runtime with
two flags as the result, `support_bmi1` and `support_bmi2`,
in runtime/runtime2.go. It also completed the condition to run AVX2 version
in packages crypto/sha1 and crypto/sha256.

Fixes #18512

Change-Id: I917bf0de365237740999de3e049d2e8f2a4385ad
Reviewed-on: https://go-review.googlesource.com/34850
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years ago.gitignore: fix attempt at rooted paths
Russ Cox [Wed, 4 Jan 2017 19:12:56 +0000 (14:12 -0500)]
.gitignore: fix attempt at rooted paths

When I wrote the lines

bin/
pkg/

I was trying to match just the top-level bin and pkg directories, and I put the
final slash in because 'git help gitignore' says:

       o   If the pattern does not contain a slash /, Git treats it as a shell
           glob pattern and checks for a match against the pathname relative
           to the location of the .gitignore file (relative to the toplevel of
           the work tree if not from a .gitignore file).

       o   Otherwise, Git treats the pattern as a shell glob suitable for
           consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in
           the pattern will not match a / in the pathname. For example,
           "Documentation/*.html" matches "Documentation/git.html" but not
           "Documentation/ppc/ppc.html" or
           "tools/perf/Documentation/perf.html".

Putting a trailing slash was my way of opting in to the "rooted path" semantics
without looking different from the surrounding rooted paths like "src/go/build/zcgo.go".

But HA HA GIT FOOLED YOU! above those two bullets the docs say:

       o   If the pattern ends with a slash, it is removed for the purpose of
           the following description, ...

Change all the patterns to use a leading slash for "rooted" behavior.

This bit me earlier today because I had a perfectly reasonable source
code directory go/src/cmd/go/testdata/src/empty/pkg that was
not added by 'git add empty'.

Change-Id: I6f8685b3c5be22029c33de9ccd735487089a1c03
Reviewed-on: https://go-review.googlesource.com/34832
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agolib/time: update tzdata to 2016j
Brad Fitzpatrick [Thu, 5 Jan 2017 00:52:04 +0000 (00:52 +0000)]
lib/time: update tzdata to 2016j

Fixes #18500

Change-Id: I4dddd1b99aecf86b9431b0c14f452152dff9b95a
Reviewed-on: https://go-review.googlesource.com/34816
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agocmd/go: retain test binary when go test is run with -mutexprofile
Kale Blankenship [Mon, 2 Jan 2017 21:41:39 +0000 (13:41 -0800)]
cmd/go: retain test binary when go test is run with -mutexprofile

Fixes #18494

Change-Id: I8a190acae6d5f1d20d4e4e4547d84e10e8a7fe68
Reviewed-on: https://go-review.googlesource.com/34793
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

7 years agonet/http/httputil: make DumpRequest and DumpRequestOut recognize http.NoBody
Brad Fitzpatrick [Wed, 4 Jan 2017 21:23:00 +0000 (21:23 +0000)]
net/http/httputil: make DumpRequest and DumpRequestOut recognize http.NoBody

Fixes #18506

Change-Id: I6b0b107296311178938609e878e1ef47a30a463f
Reviewed-on: https://go-review.googlesource.com/34814
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agonet/http: make Server cancel its ReadTimeout between requests
Brad Fitzpatrick [Wed, 4 Jan 2017 21:03:24 +0000 (21:03 +0000)]
net/http: make Server cancel its ReadTimeout between requests

Fixes #18447

Change-Id: I5d60c3632a5ce625d3bac9d85533ce689e301707
Reviewed-on: https://go-review.googlesource.com/34813
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agotesting: add missing newlines to error messages
Ian Lance Taylor [Wed, 4 Jan 2017 18:13:18 +0000 (10:13 -0800)]
testing: add missing newlines to error messages

No test because in practice these errors never occur.

Change-Id: I11c77893ae931fc621c98920cba656790d18ed93
Reviewed-on: https://go-review.googlesource.com/34811
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/go: add sync/atomic dependency when needed by test coverage
Russ Cox [Wed, 4 Jan 2017 15:30:28 +0000 (10:30 -0500)]
cmd/go: add sync/atomic dependency when needed by test coverage

Fixes #18486.

Change-Id: I359dc4169e04b4123bd41679ea939b06fa754ac2
Reviewed-on: https://go-review.googlesource.com/34830
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agodoc: in Go 1.8 notes, mention lack of RWMutex in contention profile
Russ Cox [Wed, 4 Jan 2017 18:37:33 +0000 (13:37 -0500)]
doc: in Go 1.8 notes, mention lack of RWMutex in contention profile

For #18496.

Change-Id: I50ced7c9f0fe5d9c627eef1f59a7f73be742e04c
Reviewed-on: https://go-review.googlesource.com/34831
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/link: use 64k segment alignment on linux/arm
Russ Cox [Wed, 4 Jan 2017 14:24:33 +0000 (09:24 -0500)]
cmd/link: use 64k segment alignment on linux/arm

Otherwise 64k pages don't map correctly.

Fixes #18408.

Change-Id: I85f56682531566d1ff5c655640cd58509514aee8
Reviewed-on: https://go-review.googlesource.com/34629
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
7 years agoruntime: check sched_getaffinity return value
Michael Marineau [Tue, 3 Jan 2017 08:15:05 +0000 (00:15 -0800)]
runtime: check sched_getaffinity return value

Android on ChromeOS uses a restrictive seccomp filter that blocks
sched_getaffinity, leading this code to index a slice by -errno.

Change-Id: Iec09a4f79dfbc17884e24f39bcfdad305de75b37
Reviewed-on: https://go-review.googlesource.com/34794
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>

7 years agocmd/vet: include function name or value in copylock message
Rob Pike [Sat, 24 Dec 2016 21:51:21 +0000 (08:51 +1100)]
cmd/vet: include function name or value in copylock message

Given
var t struct{ lock sync.Mutex }
var fntab []func(t)
f(a(), b(&t), c(), fntab[0](t))

Before:
function call copies lock value: struct{lock sync.Mutex} contains sync.Mutex

After:
call of fntab[0] copies lock value: struct{lock sync.Mutex} contains sync.Mutex

This will make diagnosis easier when there are multiple function calls per line.

Change-Id: I9881713c5671b847b84a0df0115f57e7cba17d72
Reviewed-on: https://go-review.googlesource.com/34730
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agocmd/dist: enable extLink tests for s390x
Michael Munday [Tue, 3 Jan 2017 17:41:18 +0000 (12:41 -0500)]
cmd/dist: enable extLink tests for s390x

Change-Id: Ia97d770cd942a49a34c733643ced7490fc31c736
Reviewed-on: https://go-review.googlesource.com/34795
Run-TryBot: Michael Munday <munday@ca.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agocmd/dist: enable extLink tests for mips{,le}
Vladimir Stefanovic [Tue, 27 Dec 2016 15:46:11 +0000 (16:46 +0100)]
cmd/dist: enable extLink tests for mips{,le}

Change-Id: I9e37aece5ace374e89bee70962a19f76ae3266bc
Reviewed-on: https://go-review.googlesource.com/34646
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoruntime: fix SP alignment in mips{,le} sigfwd
Vladimir Stefanovic [Tue, 27 Dec 2016 15:26:41 +0000 (16:26 +0100)]
runtime: fix SP alignment in mips{,le} sigfwd

Fixes misc/cgo/testsigfwd, enabled for mips{,le} with the next commit
(https://golang.org/cl/34646).

Change-Id: I2bec894b0492fd4d84dd73a4faa19eafca760107
Reviewed-on: https://go-review.googlesource.com/34645
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agodatabase/sql: fix typo and wording
Kevin Burke [Mon, 2 Jan 2017 21:19:31 +0000 (13:19 -0800)]
database/sql: fix typo and wording

Clean up the phrasing a little bit, make the comment fit in 80
characters, and fix the spelling of "guard."

Change-Id: I688a3e760b8d67ea83830635f64dff04dd9a5911
Reviewed-on: https://go-review.googlesource.com/34792
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agodatabase/sql: prevent Tx.rollback from racing Tx.close
Daniel Theophanes [Mon, 26 Dec 2016 19:33:46 +0000 (11:33 -0800)]
database/sql: prevent Tx.rollback from racing Tx.close

Previously Tx.done was being set in close, but in a Tx
rollback and Commit are the real closing methods,
and Tx.close is just a helper common to both. Prior to this
change a multiple rollback statements could be called, one
would enter close and begin closing it while the other was
still in rollback breaking it. Fix that by setting done
in rollback and Commit, not in Tx.close.

Fixes #18429

Change-Id: Ie274f60c2aa6a4a5aa38e55109c05ea9d4fe0223
Reviewed-on: https://go-review.googlesource.com/34716
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agocmd/link: don't suggest using nm to find -X name
Ian Lance Taylor [Mon, 2 Jan 2017 05:51:41 +0000 (21:51 -0800)]
cmd/link: don't suggest using nm to find -X name

It doesn't work if the package name includes a '.' or a non-ASCII
character (or '%', '"', or a control character).  See #16710 and CL 31970.

Update #18246.

Change-Id: I1487f462a3dc7b0016fce3aa1ea6239b226e6e39
Reviewed-on: https://go-review.googlesource.com/34791
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agonet/http: update bundled http2 for Server WriteTimeout change
Brad Fitzpatrick [Sat, 31 Dec 2016 18:35:15 +0000 (18:35 +0000)]
net/http: update bundled http2 for Server WriteTimeout change

Updates http2 to x/net/http2 git rev 8fd7f25 for:

    http2: clear WriteTimeout in Server
    https://golang.org/cl/34724

And un-skip the new test. (The new test is a slow test, anyway, so
won't affect builders or all.bash, but I verified it now passes.)

Updates #18437

Change-Id: Ia91ae702edfd23747a9d6b61da284a5a957bfed3
Reviewed-on: https://go-review.googlesource.com/34729
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Kale B <kale@lemnisys.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agonet/http: add test for http2 Server WriteTimeout
Kale Blankenship [Thu, 29 Dec 2016 03:25:44 +0000 (19:25 -0800)]
net/http: add test for http2 Server WriteTimeout

Current handling of WriteTimeout for http2 does not
extend the timeout on new streams. Disable the WriteTimeout
in http2 for 1.8 release.

Updates #18437

Change-Id: I20480432ab176f115464434645defb56ebeb6ece
Reviewed-on: https://go-review.googlesource.com/34723
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agonet/http/httputil: clarify the contract on ReverseProxy's Director.
Mike Wiacek [Thu, 29 Dec 2016 00:15:35 +0000 (16:15 -0800)]
net/http/httputil: clarify the contract on ReverseProxy's Director.

Avoid potential race conditions by clarifying to implemntors of the
ReverseProxy interface, the lifetime of provided http.Request structs.

Fixes #18456
Change-Id: I46aa60322226ecc3a0d30fa1ef108e504171957a
Reviewed-on: https://go-review.googlesource.com/34720
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/go: fix two formatting issues in documentation of testing flags
Dmitri Shuralyov [Wed, 28 Dec 2016 19:24:08 +0000 (14:24 -0500)]
cmd/go: fix two formatting issues in documentation of testing flags

Remove unneeded second colon.

Remove unneeded space at the beginning of a line (before a tab).

Regenerate alldocs.go with mkalldocs.sh.

Updates https://golang.org/cl/28783.
Updates https://golang.org/cl/29650.
Fixes #18448.

Change-Id: I1830136a2b760827d4cec565744807a0fd147584
Reviewed-on: https://go-review.googlesource.com/34718
Reviewed-by: Rob Pike <r@golang.org>
7 years agocmd/compile: lock-in test for repeated variables in range declaration
Emmanuel Odeke [Sat, 24 Dec 2016 08:06:02 +0000 (00:06 -0800)]
cmd/compile: lock-in test for repeated variables in range declaration

Fixes #6772.

Lock-in test for invalid range loop: repeated variables in range declaration.

Change-Id: I37dd8b1cd7279abe7810deaf8a5d485c5c3b73ca
Reviewed-on: https://go-review.googlesource.com/34714
Reviewed-by: Keith Randall <khr@golang.org>
7 years agocmd/vet: fix copylocks false positive on len(array) and cap(array).
Aliaksandr Valialkin [Mon, 19 Dec 2016 17:28:17 +0000 (19:28 +0200)]
cmd/vet: fix copylocks false positive on len(array) and cap(array).

This is a follow-up for https://golang.org/cl/24340.

Updates #14664.
Fixes #18374.

Change-Id: I2831556a9014d30ec70d5f91943d18c33db5b390
Reviewed-on: https://go-review.googlesource.com/34630
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Rob Pike <r@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agoruntime: document MemStats.BySize fields
Austin Clements [Fri, 23 Dec 2016 01:17:32 +0000 (18:17 -0700)]
runtime: document MemStats.BySize fields

Change-Id: Iae8cdcd84e9b5f5d7c698abc6da3fc2af0ef839a
Reviewed-on: https://go-review.googlesource.com/34710
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
7 years agotest: lock in test for _ assignment evaluation/zerodivide panic
Emmanuel Odeke [Fri, 23 Dec 2016 11:23:10 +0000 (03:23 -0800)]
test: lock in test for _ assignment evaluation/zerodivide panic

Fixes #5790.
Fixes #18421.

* Lock in _ = x1/x2 divide by zero runtime panics since
it is actually evaluated and not discarded as in previous
versions before Go1.8.
* Update a test that was skipping over zerodivide tests
that expected runtime panics, enabling us to check for
the expected panics.

Change-Id: I0af0a6ecc19345fa9763ab2e35b275fb2d9d0194
Reviewed-on: https://go-review.googlesource.com/34712
Reviewed-by: Keith Randall <khr@golang.org>
7 years agonet: Fix spelling of function name in doc
Kevin Burke [Fri, 23 Dec 2016 01:21:31 +0000 (17:21 -0800)]
net: Fix spelling of function name in doc

Change-Id: I24c6d312f7d0ce52e1958e8031fc8249af0dfca9
Reviewed-on: https://go-review.googlesource.com/34669
Reviewed-by: Minux Ma <minux@golang.org>
7 years agocmd/pprof: Re-enable weblist and disasm
Raul Silvera [Wed, 21 Dec 2016 18:16:15 +0000 (10:16 -0800)]
cmd/pprof: Re-enable weblist and disasm

Previous changes started using the full filename for object files
on graph nodes, instead of just the file basename. The basename
was still being used when selecting mappings to disassemble for
weblist and disasm commands, causing a mismatch.

This fixes #18385. It was already fixed on the upstream pprof.

Change-Id: I1664503634f2c8cd31743561301631f12c4949c9
Reviewed-on: https://go-review.googlesource.com/34665
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agonet/http: restore Transport's Request.Body byte sniff in limited cases
Brad Fitzpatrick [Thu, 1 Dec 2016 21:45:59 +0000 (21:45 +0000)]
net/http: restore Transport's Request.Body byte sniff in limited cases

In Go 1.8, we'd removed the Transport's Request.Body
one-byte-Read-sniffing to disambiguate between non-nil Request.Body
with a ContentLength of 0 or -1. Previously, we tried to see whether a
ContentLength of 0 meant actually zero, or just an unset by reading a
single byte of the Request.Body and then stitching any read byte back
together with the original Request.Body.

That historically has caused many problems due to either data races,
blocking forever (#17480), or losing bytes (#17071). Thus, we removed
it in both HTTP/1 and HTTP/2 in Go 1.8. Unfortunately, during the Go
1.8 beta, we've found that a few people have gotten bitten by the
behavior change on requests with methods typically not containing
request bodies (e.g. GET, HEAD, DELETE). The most popular example is
the aws-go SDK, which always set http.Request.Body to a non-nil value,
even on such request methods. That was causing Go 1.8 to send such
requests with Transfer-Encoding chunked bodies, with zero bytes,
confusing popular servers (including but limited to AWS).

This CL partially reverts the no-byte-sniffing behavior and restores
it only for GET/HEAD/DELETE/etc requests, and only when there's no
Transfer-Encoding set, and the Content-Length is 0 or -1.

Updates #18257 (aws-go) bug
And also private bug reports about non-AWS issues.

Updates #18407 also, but haven't yet audited things enough to declare
it fixed.

Change-Id: Ie5284d3e067c181839b31faf637eee56e5738a6a
Reviewed-on: https://go-review.googlesource.com/34668
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agoruntime: skip floating point hardware check on Android
Elias Naur [Thu, 22 Dec 2016 17:31:17 +0000 (18:31 +0100)]
runtime: skip floating point hardware check on Android

CL 33652 removed the fake auxv for Android, and replaced it with
a /proc/self/auxv fallback. When /proc/self/auxv is unreadable,
however, hardware capabilities detection won't work and the runtime
will mistakenly think that floating point hardware is unavailable.

Fix this by always assuming floating point hardware on Android.

Manually tested on a Nexus 5 running Android 6.0.1. I suspect the
android/arm builder has a readable /proc/self/auxv and therefore
does not trigger the failure mode.

Change-Id: I95c3873803f9e17333c6cb8b9ff2016723104085
Reviewed-on: https://go-review.googlesource.com/34641
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agocmd/go: skip flaky TestCgoConsistentResults on FreeBSD
Mikio Hara [Wed, 21 Dec 2016 23:59:52 +0000 (08:59 +0900)]
cmd/go: skip flaky TestCgoConsistentResults on FreeBSD

FreeBSD 11 or above uses clang-3.6 or higher by default.

Updates #15405.

Change-Id: If49ce298130165f9e1525c7fd0fd5aa39099ad53
Reviewed-on: https://go-review.googlesource.com/34675
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agomisc/cgo/test: limit issue18146 attempts based on RLIMIT_NPROC
Ian Lance Taylor [Wed, 21 Dec 2016 21:50:28 +0000 (13:50 -0800)]
misc/cgo/test: limit issue18146 attempts based on RLIMIT_NPROC

Fixes #18381.

Change-Id: I0a476cd7f6182c8d4646628477c56c133d5671ee
Reviewed-on: https://go-review.googlesource.com/34667
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agodoc: fix install.html unclosed bold tag, link to /help/
Brad Fitzpatrick [Wed, 21 Dec 2016 20:48:09 +0000 (20:48 +0000)]
doc: fix install.html unclosed bold tag, link to /help/

Fixes #18406

Change-Id: Ifd7342fa8de1d2cac47b9279c1f14ac127ac193c
Reviewed-on: https://go-review.googlesource.com/34666
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
7 years agoruntime: avoid CreateThread panic when exiting process
Austin Clements [Tue, 20 Dec 2016 20:37:56 +0000 (15:37 -0500)]
runtime: avoid CreateThread panic when exiting process

On Windows, CreateThread occasionally fails with ERROR_ACCESS_DENIED.
We're not sure why this is, but the Wine source code suggests that
this can happen when there's a concurrent CreateThread and ExitProcess
in the same process.

Fix this by setting a flag right before calling ExitProcess and
halting if CreateThread fails and this flag is set.

Updates #18253 (might fix it, but we're not sure this is the issue and
can't reproduce it on demand).

Change-Id: I1945b989e73a16cf28a35bf2613ffab07577ed4e
Reviewed-on: https://go-review.googlesource.com/34616
TryBot-Result: Gobot Gobot <gobot@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agocmd/compile/internal/ssa: add tests for BSWAP on stores on AMD64
Kirill Smelkov [Thu, 1 Dec 2016 18:40:57 +0000 (21:40 +0300)]
cmd/compile/internal/ssa: add tests for BSWAP on stores on AMD64

Commit 10f75748 (CL 32222) taught AMD64 backend to rewrite series of
byte loads or stores with corresponding shifts into a single long or
quad load or store + appropriate BSWAP. However it did not added test
for stores - only loads were tested.

Fix it.

NOTE Tests for indexed stores are not added because 10f75748 did not add
support for indexed stores - only indexed loads were handled then.

Change-Id: I48c867ebe7622ac8e691d43741feed1d40cca0d7
Reviewed-on: https://go-review.googlesource.com/34634
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agoio: fix PipeWriter.Close to wake up Writes
Kirill Smelkov [Tue, 20 Dec 2016 09:02:39 +0000 (12:02 +0300)]
io: fix PipeWriter.Close to wake up Writes

Since commit cc62bed0 (CL 994043) the pipe deadlock when doing
Read+Close or Write+Close on same end was fixed, alas with test for
Read+Close case only.

Then commit 6d6f3381 (CL 4252057) made a thinko: in the writer path
p.werr is checked for != nil and then err is set but there is no break
from waiting loop unlike break is there in similar condition for reader.
Together with having only Read+Close case tested that made it to leave
reintroduced Write+Close deadlock unnoticed.

Fix it.

Implicitly this also fixes net.Pipe to conform to semantic of net.Conn
interface where Close is documented to unblock any blocked Read or Write
operations.

No test added to net/ since net.Pipe tests are "Assuming that the
underlying io.Pipe implementation is solid and we're just testing the
net wrapping". The test added in this patch should be enough to cover
the breakage.

Fixes #18401
Updates #18170

Change-Id: I9e9460b3fd7d220bbe60b726accf86f352aed8d4
Reviewed-on: https://go-review.googlesource.com/34637
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agobuild: fix darwin/arm broken on macOS 10.12 with Xcode 8.0
Koichi Shiraishi [Wed, 21 Dec 2016 06:50:26 +0000 (15:50 +0900)]
build: fix darwin/arm broken on macOS 10.12 with Xcode 8.0

Xcode 8.0 has been donen't support the iOS 5 anymore

Fixes #18390.

Change-Id: Icc97e09424780c610a8fe173d0cf461d76b06da4
Reviewed-on: https://go-review.googlesource.com/34673
Reviewed-by: David Crawshaw <crawshaw@golang.org>
7 years agogo/parser: fix reference in ParseExprFrom docs
Takuya Ueda [Wed, 21 Dec 2016 03:43:05 +0000 (12:43 +0900)]
go/parser: fix reference in ParseExprFrom docs

The ParseExprFrom docs refer to Parse. It meant ParseFile.

Fixes #18398

Change-Id: I06fb3b5178c6319e86199823fe4769a8eb9dc49c
Reviewed-on: https://go-review.googlesource.com/34671
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoRevert "cmd/go: note when some Go files were ignored on no-Go-files errors"
Brad Fitzpatrick [Wed, 21 Dec 2016 03:24:08 +0000 (03:24 +0000)]
Revert "cmd/go: note when some Go files were ignored on no-Go-files errors"

This reverts commit eee727d0855b9e78f9df87e08d57b1d7f264876c
(https://golang.org/cl/29113)

The " (.go files ignored due to build tags)" error message is not
always accurate.

Fixes #18396
Updates #17008

Change-Id: I609653120603a7f6094bc1dc3a83856f4b259241
Reviewed-on: https://go-review.googlesource.com/34662
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agocmd/vet: avoid crash in cgo test on recursive type
Ian Lance Taylor [Wed, 21 Dec 2016 02:16:17 +0000 (18:16 -0800)]
cmd/vet: avoid crash in cgo test on recursive type

This CL also re-enables the cgo tests that were accidentally disabled
in CL 32754.

Fixes #18389.

Change-Id: I2fdc4fe3ec1f92b7da3db3fa66f4e0f806fc899f
Reviewed-on: https://go-review.googlesource.com/34660
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoA+C: automated update
Brad Fitzpatrick [Tue, 20 Dec 2016 19:32:47 +0000 (19:32 +0000)]
A+C: automated update

Now with a few more repos included.

Add Albert Yu (individual CLA)
Add Alessandro Baffa (individual CLA)
Add Alexandre Fiori (individual CLA)
Add Andrew Austin (individual CLA)
Add Andy Finkenstadt (individual CLA)
Add Antonio Bibiano (individual CLA)
Add Baiju Muthukadan (individual CLA)
Add Ben Lubar (individual CLA)
Add Euan Kemp (individual CLA)
Add Harry Moreno (individual CLA)
Add Jason Buberel (corporate CLA for Google Inc.)
Add Joop Kiefte (individual CLA)
Add Maksym Trykur (individual CLA)
Add Mathieu Olivier (individual CLA)
Add Nick Leli (individual CLA)
Add Nik Nyby (individual CLA)
Add Quinn Slack (corporate CLA for Sourcegraph Inc)
Add Rafal Jeczalik (individual CLA)
Add Raphael Geronimi (individual CLA)
Add Ryan Bagwell (individual CLA)
Add Steve Francia (corporate CLA for Google Inc.)
Add Tristan Colgate (individual CLA)
Add Фахриддин Балтаев (individual CLA)

Updates #12042

Change-Id: Iab98da8a7a9fd3ee54f716ea358b2d515e1e32c4
Reviewed-on: https://go-review.googlesource.com/34658
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agonet: make InterfaceByIndex return a consistent name on solaris
Mikio Hara [Tue, 20 Dec 2016 08:39:54 +0000 (17:39 +0900)]
net: make InterfaceByIndex return a consistent name on solaris

Also retightens test cases for Resolve{TCP,UDP,IP}Addr which are using
interface names for specifying IPv6 zone.

Updates #14037.
Fixes #18362.

Change-Id: I7444b6302e2847dfbdab8a0ad5b2e702bed1a3d6
Reviewed-on: https://go-review.googlesource.com/34670
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agonet: fix LookupCNAME on Plan 9
David du Colombier [Tue, 20 Dec 2016 21:33:06 +0000 (22:33 +0100)]
net: fix LookupCNAME on Plan 9

In CL 34650, LookupCNAME was changed so it always returns
the canonical DNS host, even when there is no CNAME record.

Consequently, TestLookupCNAME was failing on Plan 9,
because www.google.com doesn't have a CNAME record.

We changed the implementation of lookupCNAME on Plan 9, so it
returns the canonical DNS host after a CNAME lookup failure.

Fixes #18391.

Change-Id: I59f361bfb2c9de3953e998e8ac58c054979210bd
Reviewed-on: https://go-review.googlesource.com/34633
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: David du Colombier <0intro@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

7 years agodoc: add mips, mips64 information to asm.html
Vladimir Stefanovic [Tue, 20 Dec 2016 17:24:40 +0000 (18:24 +0100)]
doc: add mips, mips64 information to asm.html

Fixes #18105

Change-Id: Id56e8782ff618761ec44b6dc20891c8b48fea8df
Reviewed-on: https://go-review.googlesource.com/34632
Reviewed-by: Rob Pike <r@golang.org>
7 years agonet/http, doc: more redirect documentation
Brad Fitzpatrick [Tue, 20 Dec 2016 17:59:37 +0000 (17:59 +0000)]
net/http, doc: more redirect documentation

Updates #18347
Updates #9348

Change-Id: I115203b0be3eb2e7e269ff28e2f3c47eeca86038
Reviewed-on: https://go-review.googlesource.com/34657
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agonet: mark TestDialerDualStackFDLeak as flaky on OpenBSD
Brad Fitzpatrick [Tue, 20 Dec 2016 17:35:27 +0000 (17:35 +0000)]
net: mark TestDialerDualStackFDLeak as flaky on OpenBSD

Updates #15157

Change-Id: Id280705f4382c3b2323f0eed786a400a184614de
Reviewed-on: https://go-review.googlesource.com/34656
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

7 years agonet: make LookupCNAME's native behavior match its cgo behavior
Matthew Dempsky [Mon, 19 Dec 2016 21:05:53 +0000 (13:05 -0800)]
net: make LookupCNAME's native behavior match its cgo behavior

Fixes #18172.

Change-Id: I4a21fb5c0753cced025a03d88a6dd1aa3ee01d05
Reviewed-on: https://go-review.googlesource.com/34650
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>

7 years agoruntime: avoid incorrect panic when a signal arrives during STW
Austin Clements [Tue, 20 Dec 2016 03:43:38 +0000 (22:43 -0500)]
runtime: avoid incorrect panic when a signal arrives during STW

Stop-the-world and freeze-the-world (used for unhandled panics) are
currently not safe to do at the same time. While a regular unhandled
panic can't happen concurrently with STW (if the P hasn't been
stopped, then the panic blocks the STW), a panic from a _SigThrow
signal can happen on an already-stopped P, racing with STW. When this
happens, freezetheworld sets sched.stopwait to 0x7fffffff and
stopTheWorldWithSema panics because sched.stopwait != 0.

Fix this by detecting when freeze-the-world happens before
stop-the-world has completely stopped the world and freeze the STW
operation rather than panicking.

Fixes #17442.

Change-Id: I646a7341221dd6d33ea21d818c2f7218e2cb7e20
Reviewed-on: https://go-review.googlesource.com/34611
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agomisc/cgo/testcshared: wait up to 1 second in main2.c
Ian Lance Taylor [Tue, 20 Dec 2016 03:46:54 +0000 (19:46 -0800)]
misc/cgo/testcshared: wait up to 1 second in main2.c

Wait longer in case the system is heavily loaded.

Fixes #18324.

Change-Id: If9a6da1cf32d0321302d244ee24fb3f80e54489d
Reviewed-on: https://go-review.googlesource.com/34653
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agodoc/go1.8: document that CGO_ENABLED is sticky
Shenghou Ma [Sun, 18 Dec 2016 03:53:38 +0000 (22:53 -0500)]
doc/go1.8: document that CGO_ENABLED is sticky

Fixes #18363.

Change-Id: Ifc98506d33a6753cd7db8e505cf86d5626fbbad0
Reviewed-on: https://go-review.googlesource.com/34596
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agocrypto/x509: fix spelling/grammar in comments
Kevin Burke [Tue, 20 Dec 2016 04:53:45 +0000 (20:53 -0800)]
crypto/x509: fix spelling/grammar in comments

Also tweak one of the comment lines to fit in 80 characters.

Change-Id: I9c6d2028c29318ba9264486590056cb1ffc8219e
Reviewed-on: https://go-review.googlesource.com/34655
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocrypto/x509: speed up and deflake non-cgo Darwin root cert discovery
Brad Fitzpatrick [Thu, 15 Dec 2016 05:53:01 +0000 (05:53 +0000)]
crypto/x509: speed up and deflake non-cgo Darwin root cert discovery

Piping into security verify-cert only worked on macOS Sierra, and was
flaky for unknown reasons. Users reported that the number of trusted
root certs stopped randomly jumping around once they switched to using
verify-cert against files on disk instead of /dev/stdin.

But even using "security verify-cert" on 150-200 certs took too
long. It took 3.5 seconds on my machine. More than 4 goroutines
hitting verify-cert didn't help much, and soon started to hurt
instead.

New strategy, from comments in the code:

// 1. Run "security trust-settings-export" and "security
//    trust-settings-export -d" to discover the set of certs with some
//    user-tweaked trusy policy. We're too lazy to parse the XML (at
//    least at this stage of Go 1.8) to understand what the trust
//    policy actually is. We just learn that there is _some_ policy.
//
// 2. Run "security find-certificate" to dump the list of system root
//    CAs in PEM format.
//
// 3. For each dumped cert, conditionally verify it with "security
//    verify-cert" if that cert was in the set discovered in Step 1.
//    Without the Step 1 optimization, running "security verify-cert"
//    150-200 times takes 3.5 seconds. With the optimization, the
//    whole process takes about 180 milliseconds with 1 untrusted root
//    CA. (Compared to 110ms in the cgo path)

Fixes #18203

Change-Id: I4e9c11fa50d0273c615382e0d8f9fd03498d4cb4
Reviewed-on: https://go-review.googlesource.com/34389
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Quentin Smith <quentin@golang.org>
7 years agocmd/cover: fix spelling mistake
Kevin Burke [Tue, 20 Dec 2016 04:27:12 +0000 (20:27 -0800)]
cmd/cover: fix spelling mistake

Change-Id: Iac7c4f22dc55c970940af33e0f0470694da5c4a6
Reviewed-on: https://go-review.googlesource.com/34654
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agodoc: remove archive/zip changes from go1.8.html
Joe Tsai [Tue, 20 Dec 2016 01:36:02 +0000 (17:36 -0800)]
doc: remove archive/zip changes from go1.8.html

Change-Id: I5670e9924b21fb2466b2b32aa01a922e9a0a0f8a
Reviewed-on: https://go-review.googlesource.com/34652
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoRevert: "archive/zip: handle mtime in NTFS/UNIX/ExtendedTS extra fields"
Joe Tsai [Tue, 20 Dec 2016 01:18:45 +0000 (17:18 -0800)]
Revert: "archive/zip: handle mtime in NTFS/UNIX/ExtendedTS extra fields"

This change reverts the following CLs:
CL/18274: handle mtime in NTFS/UNIX/ExtendedTS extra fields
CL/30811: only use Extended Timestamp on non-zero MS-DOS timestamps

We are reverting support for extended timestamps since the support was not
not complete. CL/18274 added full support for reading extended timestamp fields
and minimal support for writing them. CL/18274 is incomplete because it made
no changes to the FileHeader struct, so timezone information was lost when
reading and/or writing.

While CL/18274 was a step in the right direction, we should provide full
support for high precision timestamps in both the reader and writer.
This will probably require that we add a new field of type time.Time.
The complete fix is too involved to add in the time remaining for Go 1.8
and will be completed in Go 1.9.

Updates #10242
Updates #17403
Updates #18359
Fixes #18378

Change-Id: Icf6d028047f69379f7979a29bfcb319a02f4783e
Reviewed-on: https://go-review.googlesource.com/34651
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/cover: retain un-attached compiler directives
Dhananjay Nakrani [Mon, 19 Dec 2016 03:25:37 +0000 (19:25 -0800)]
cmd/cover: retain un-attached compiler directives

Parser doesn't attach some compiler directives to anything in the tree.
We have to explicitely retain them in the generated code. This change,
makes cover explicitely print out any compiler directive that wasn't
handled in the ast.Visitor.

Fixes #18285.

Change-Id: Ib60f253815e92d7fc85051a7f663a61116e40a91
Reviewed-on: https://go-review.googlesource.com/34563
Run-TryBot: Rob Pike <r@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
7 years agoruntime: use mincore to detect physical page size as last resort on Android
Shenghou Ma [Mon, 19 Dec 2016 14:48:07 +0000 (09:48 -0500)]
runtime: use mincore to detect physical page size as last resort on Android

Fixes #18041.

Change-Id: Iad1439b2dd56b113c8829699eda467d1367b0e15
Reviewed-on: https://go-review.googlesource.com/34610
Reviewed-by: Austin Clements <austin@google.com>
7 years agoruntime: clean up and improve reflect.methodValue comments
Austin Clements [Fri, 16 Dec 2016 16:57:25 +0000 (11:57 -0500)]
runtime: clean up and improve reflect.methodValue comments

The runtime no longer hard-codes the offset of
reflect.methodValue.stack, so remove these obsolete comments. Also,
reflect.methodValue and runtime.reflectMethodValue must also agree
with reflect.makeFuncImpl, so update the comments on all three to
mention this.

This was pointed out by Minux on CL 31138.

Change-Id: Ic5ed1beffb65db76aca2977958da35de902e8e58
Reviewed-on: https://go-review.googlesource.com/34590
Reviewed-by: Keith Randall <khr@golang.org>
7 years agocmd/compile: test for correct zeroing
Keith Randall [Mon, 19 Dec 2016 17:15:04 +0000 (09:15 -0800)]
cmd/compile: test for correct zeroing

Make sure we generate the right code for zeroing a structure.

Check in after Matthew's CL (34564).

Update #18370

Change-Id: I987087f979d99227a880b34c44d9d4de6c25ba0c
Reviewed-on: https://go-review.googlesource.com/34565
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>

7 years agocmd/go: fix doc about examples with empty Output
Alberto Donizetti [Fri, 16 Dec 2016 08:58:06 +0000 (09:58 +0100)]
cmd/go: fix doc about examples with empty Output

Fixes #18191

Change-Id: Ic2bac9d2a6f42d14e780c74d9c842ee344ab030a
Reviewed-on: https://go-review.googlesource.com/34512
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/compile: restore zero assignment optimization for non-pointer types
Matthew Dempsky [Mon, 19 Dec 2016 16:19:50 +0000 (08:19 -0800)]
cmd/compile: restore zero assignment optimization for non-pointer types

golang.org/cl/31572 disabled some write barrier optimizations, but
inadvertantly disabled optimizations for some non-pointer composite
literal assignments too.

Fixes #18370.

Change-Id: Ia25019bd3016b6ab58173298c7d16202676bce6b
Reviewed-on: https://go-review.googlesource.com/34564
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
7 years agocrypto/tls: fix a typo
Mikio Hara [Sun, 18 Dec 2016 21:01:18 +0000 (06:01 +0900)]
crypto/tls: fix a typo

Change-Id: Id0044c45c23c12ee0bca362a9cdd25369ed7776c
Reviewed-on: https://go-review.googlesource.com/34533
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agocmd/compile, runtime: a different approach to duplicate itabs
Michael Hudson-Doyle [Mon, 12 Dec 2016 00:31:56 +0000 (13:31 +1300)]
cmd/compile, runtime: a different approach to duplicate itabs

golang.org/issue/17594 was caused by additab being called more than once for
an itab. golang.org/cl/32131 fixed that by making the itabs local symbols,
but that in turn causes golang.org/issue/18252 because now there are now
multiple itab symbols in a process for a given (type,interface) pair and
different code paths can end up referring to different itabs which breaks
lots of reflection stuff. So this makes itabs global again and just takes
care to only call additab once for each itab.

Fixes #18252

Change-Id: I781a193e2f8dd80af145a3a971f6a25537f633ea
Reviewed-on: https://go-review.googlesource.com/34173
Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
7 years agopath/filepath: deprecate HasPrefix
Joe Tsai [Fri, 16 Dec 2016 21:35:51 +0000 (13:35 -0800)]
path/filepath: deprecate HasPrefix

Use the new "Deprecated:" syntax for all instances of HasPrefix.
This is a follow-up to http://golang.org/cl/28413 which only modified path_unix.go.

In this CL, we avoid mentioning that strings.HasPrefix should be used since
that function is still subtly wrong in security applications.

See http://golang.org/cl/5712045 for more information.

Fixes #18355

Change-Id: I0d0306152cd0b0ea5110774c2c78117515b9f5cd
Reviewed-on: https://go-review.googlesource.com/34554
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoruntime: cross-reference _func type better
Austin Clements [Wed, 14 Dec 2016 18:24:21 +0000 (13:24 -0500)]
runtime: cross-reference _func type better

It takes me several minutes every time I want to find where the linker
writes out the _func structures. Add some comments to make this
easier.

Change-Id: Ic75ce2786ca4b25726babe3c4fe9cd30c85c34e2
Reviewed-on: https://go-review.googlesource.com/34390
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agoruntime/pprof: fix spelling in test
Kevin Burke [Fri, 16 Dec 2016 15:50:08 +0000 (07:50 -0800)]
runtime/pprof: fix spelling in test

Change-Id: Id10e41fe396156106f63a4b29d673b31bea5358f
Reviewed-on: https://go-review.googlesource.com/34551
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agonet: clarify IP.IsGlobalUnicast docs
Mikio Hara [Fri, 16 Dec 2016 09:45:55 +0000 (18:45 +0900)]
net: clarify IP.IsGlobalUnicast docs

Fixes #18181.

Change-Id: I5eed99dfb7b013aa4d4e668e95a97f5bb643d307
Reviewed-on: https://go-review.googlesource.com/34531
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoruntime/pprof: deflake tests for heavily loaded systems
Ian Lance Taylor [Fri, 16 Dec 2016 01:42:53 +0000 (17:42 -0800)]
runtime/pprof: deflake tests for heavily loaded systems

In the sampling tests, let the test pass if we get at least 10 samples.

Fixes #18332.

Change-Id: I8aad083d1a0ba179ad6663ff43f6b6b3ce1e18cd
Reviewed-on: https://go-review.googlesource.com/34507
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agomisc/cgo/testsanitizer: don't run msan tests if msan doesn't work
Ian Lance Taylor [Fri, 16 Dec 2016 00:57:59 +0000 (16:57 -0800)]
misc/cgo/testsanitizer: don't run msan tests if msan doesn't work

Confirm that a trivial executable can build and execute using
-fsanitize=memory.

Fixes #18335 (by skipping the tests when they don't work).

Change-Id: Icb7a276ba7b57ea3ce31be36f74352cc68dc89d5
Reviewed-on: https://go-review.googlesource.com/34505
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
7 years agoruntime: preserve callee-saved C registers in sigtramp
Bryan C. Mills [Thu, 15 Dec 2016 22:21:13 +0000 (14:21 -0800)]
runtime: preserve callee-saved C registers in sigtramp

This fixes Linux and the *BSD platforms on 386/amd64.

A few OS/arch combinations were already saving registers and/or doing
something that doesn't clearly resemble the SysV C ABI; those have
been left alone.

Fixes #18328.

Change-Id: I6398f6c71020de108fc8b26ca5946f0ba0258667
Reviewed-on: https://go-review.googlesource.com/34501
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agonet/http: deflake TestServerTimeouts maybe
Brad Fitzpatrick [Thu, 15 Dec 2016 16:18:45 +0000 (16:18 +0000)]
net/http: deflake TestServerTimeouts maybe

I haven't been able to reproduce this one, but change a few suspect
things in this test. Notably, using the global "Get" function and thus
using the DefaultTransport was buggy in a parallel test. Then add some error
checks and close a TCP connection.

Hopefully the failure wasn't timing-related.

Fixes #18036 (I hope)

Change-Id: I4904e42e40b26d488cf82111424a1d4d46f42dae
Reviewed-on: https://go-review.googlesource.com/34490
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
7 years agotest: add mipsx case to nosplit.go
Vladimir Stefanovic [Thu, 15 Dec 2016 17:05:26 +0000 (18:05 +0100)]
test: add mipsx case to nosplit.go

Change-Id: I496bceacb6b3f417e36dc725d988b12c59a200d5
Reviewed-on: https://go-review.googlesource.com/34412
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>