diff options
author | Austin Clements <austin@google.com> | 2021-04-06 14:55:46 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2021-04-06 19:55:44 +0000 |
commit | bcc4422ee1bdb8051a6c870cf00e837814614a0f (patch) | |
tree | 3b7c9015fd0f69f39215d39cca2fe37c50f67c36 /src/runtime/mgc.go | |
parent | 1271e9a9ccfdb0906ecf69d2047ad3b470eeca02 (diff) | |
download | go-bcc4422ee1bdb8051a6c870cf00e837814614a0f.tar.gz go-bcc4422ee1bdb8051a6c870cf00e837814614a0f.zip |
runtime: deflake TestGCTestIsReachable
This is a simple workaround for a bug where runtime.GC() can return
before finishing a full sweep, causing gcTestIsReachable to throw. The
right thing is to fix runtime.GC(), but this should get this test
passing reliably in the meantime.
Updates #45315.
Change-Id: Iae141e6dbb26a9c2649497c1feedd4aaeaf540c7
Reviewed-on: https://go-review.googlesource.com/c/go/+/307809
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/runtime/mgc.go')
-rw-r--r-- | src/runtime/mgc.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 4c165ddcdb..ef3436d1f4 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -2391,6 +2391,11 @@ func gcTestIsReachable(ptrs ...unsafe.Pointer) (mask uint64) { // Force a full GC and sweep. GC() + // TODO(austin): Work around issue #45315. One GC() can return + // without finishing the sweep. Do a second to force the sweep + // through. + GC() + // Process specials. for i, s := range specials { if !s.done { |