1
0
mirror of https://github.com/golang/go synced 2024-09-25 11:20:13 -06:00
go/src
Austin Clements 9098d1d854 runtime: debug code to catch bad gcWork.puts
This adds a debug check to throw immediately if any pointers are added
to the gcWork buffer after the mark completion barrier. The intent is
to catch the source of the cached GC work that occasionally produces
"P has cached GC work at end of mark termination" failures.

The result should be that we get "throwOnGCWork" throws instead of "P
has cached GC work at end of mark termination" throws, but with useful
stack traces.

This should be reverted before the release. I've been unable to
reproduce this issue locally, but this issue appears fairly regularly
on the builders, so the intent is to catch it on the builders.

This probably slows down the GC slightly.

For #27993.

Change-Id: I5035e14058ad313bfbd3d68c41ec05179147a85c
Reviewed-on: https://go-review.googlesource.com/c/149969
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-11-21 16:28:17 +00:00
..
archive all: fix a bunch of misspellings 2018-10-08 03:12:03 +00:00
bufio bufio: make Reader.Peek invalidate Unreads 2018-11-13 15:08:13 +00:00
builtin
bytes strings,bytes: use inlineable function trampolines instead of linkname 2018-11-08 20:52:47 +00:00
cmd runtime: debug code to catch bad gcWork.puts 2018-11-21 16:28:17 +00:00
compress all: fix a bunch of misspellings 2018-10-06 15:40:03 +00:00
container container/heap: adjust wording in comments 2018-11-13 13:42:59 +00:00
context context: avoid duplicate removeChild 2018-10-03 15:26:10 +00:00
crypto crypto/hmac: rename CheckHMAC to ValidHMAC in package docs 2018-11-17 21:29:23 +00:00
database/sql database/sql: add examples for opening and testing a DB pool 2018-11-16 17:17:09 +00:00
debug debug/gosym: use "go build" instead of hand-running asm and link 2018-11-12 20:27:20 +00:00
encoding encoding/pem: test getLine does not include trailing whitespace 2018-11-19 23:35:21 +00:00
errors
expvar expvar: add Map.Delete 2018-10-04 01:16:52 +00:00
flag flag: return a consistent parse error if the flag value is invalid 2018-10-19 03:48:38 +00:00
fmt fmt: avoid allocation when formatting byte slice arguments with verb s 2018-11-14 20:32:15 +00:00
go go/doc: disable playground for examples that use syscall/js 2018-11-20 20:56:13 +00:00
hash hash/crc64: use t.Fatalf in TestGolden 2018-10-25 06:32:12 +00:00
html all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
image jpeg: simplify 'x = x op ...' to 'x op= ...' 2018-10-13 11:18:56 +00:00
index/suffixarray
internal internal/cpu: move GODEBUGCPU options into GODEBUG 2018-11-14 21:47:50 +00:00
io io: export StringWriter 2018-10-03 20:13:35 +00:00
log log: add Logger.Writer method 2018-10-25 23:23:57 +00:00
math all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
mime mime: remove allocation introduced in recent fix 2018-11-20 19:09:38 +00:00
net net/http: fix spelling mistake in a comment 2018-11-21 12:31:39 +00:00
os os: return PathError on RemoveAll with trailing dots 2018-11-20 20:03:29 +00:00
path all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
plugin
reflect reflect: add comment for String method of Kind struct 2018-11-16 14:29:14 +00:00
regexp regexp: use backquotes for all regular expression examples 2018-11-20 12:05:15 +00:00
runtime runtime: debug code to catch bad gcWork.puts 2018-11-21 16:28:17 +00:00
sort
strconv strconv: add comment explaining bounded shift in formatBits 2018-10-15 21:45:52 +00:00
strings strings,bytes: use inlineable function trampolines instead of linkname 2018-11-08 20:52:47 +00:00
sync all: use "reports whether" consistently in the few places that didn't 2018-11-02 22:47:58 +00:00
syscall syscall: add dummy SIGTERM constant to js/wasm 2018-11-20 16:17:17 +00:00
testdata
testing testing: add example to package doc 2018-11-16 16:49:09 +00:00
text text/template/parse: simplify Tree.pipeline 2018-10-29 12:20:11 +00:00
time time: add a missing comma in the documentation of Time 2018-11-08 18:02:11 +00:00
unicode
unsafe cmd/compile: assume unsafe pointer arithmetic generates non-nil results 2018-11-14 21:01:36 +00:00
vendor/golang_org/x x/net/route: use libc calls on Darwin 2018-11-14 22:39:08 +00:00
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash build: clear GO111MODULE during make.bash etc 2018-11-16 18:54:22 +00:00
make.bat build: clear GO111MODULE during make.bash etc 2018-11-16 18:54:22 +00:00
Make.dist
make.rc build: clear GO111MODULE during make.bash etc 2018-11-16 18:54:22 +00:00
naclmake.bash
nacltest.bash
race.bash cmd,runtime: enable race detector on arm64 2018-11-13 16:57:22 +00:00
race.bat
run.bash build: clear GO111MODULE during make.bash etc 2018-11-16 18:54:22 +00:00
run.bat build: clear GO111MODULE during make.bash etc 2018-11-16 18:54:22 +00:00
run.rc build: clear GO111MODULE during make.bash etc 2018-11-16 18:54:22 +00:00